Add fsFsCleanDirectoryRecursively

This commit is contained in:
Joel16 2018-07-17 11:30:55 -05:00 committed by yellows8
parent aa3c35e6e3
commit 2bcede91ba
2 changed files with 33 additions and 0 deletions

View File

@ -181,6 +181,7 @@ Result fsFsOpenDirectory(FsFileSystem* fs, const char* path, int flags, FsDir* o
Result fsFsCommit(FsFileSystem* fs);
Result fsFsGetFreeSpace(FsFileSystem* fs, const char* path, u64* out);
Result fsFsGetTotalSpace(FsFileSystem* fs, const char* path, u64* out);
Result fsFsCleanDirectoryRecursively(FsFileSystem* fs, const char* path);
void fsFsClose(FsFileSystem* fs);
// IFile

View File

@ -842,6 +842,38 @@ Result fsFsGetTotalSpace(FsFileSystem* fs, const char* path, u64* out) {
return rc;
}
Result fsFsCleanDirectoryRecursively(FsFileSystem* fs, const char* path) {
IpcCommand c;
ipcInitialize(&c);
ipcAddSendStatic(&c, path, FS_MAX_PATH, 0);
struct {
u64 magic;
u64 cmd_id;
} *raw;
raw = ipcPrepareHeader(&c, sizeof(*raw));
raw->magic = SFCI_MAGIC;
raw->cmd_id = 13;
Result rc = serviceIpcDispatch(&fs->s);
if (R_SUCCEEDED(rc)) {
IpcParsedCommand r;
ipcParse(&r);
struct {
u64 magic;
u64 result;
} *resp = r.Raw;
rc = resp->result;
}
return rc;
}
void fsFsClose(FsFileSystem* fs) {
serviceClose(&fs->s);
}