|
|
|
@ -72,6 +72,8 @@ ResultVal<std::unique_ptr<FileBackend>> SDMCArchive::OpenFileBase(const Path& pa
|
|
|
|
|
FileUtil::CreateEmptyFile(full_path);
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
case PathParser::FileFound:
|
|
|
|
|
break; // Expected 'success' case
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
FileUtil::IOFile file(full_path, mode.write_flag ? "r+b" : "rb");
|
|
|
|
@ -106,6 +108,8 @@ ResultCode SDMCArchive::DeleteFile(const Path& path) const {
|
|
|
|
|
case PathParser::DirectoryFound:
|
|
|
|
|
LOG_ERROR(Service_FS, "%s is not a file", full_path.c_str());
|
|
|
|
|
return ERROR_UNEXPECTED_FILE_OR_DIRECTORY_SDMC;
|
|
|
|
|
case PathParser::FileFound:
|
|
|
|
|
break; // Expected 'success' case
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (FileUtil::Delete(full_path)) {
|
|
|
|
@ -154,6 +158,8 @@ static ResultCode DeleteDirectoryHelper(const Path& path, const std::string& mou
|
|
|
|
|
case PathParser::FileFound:
|
|
|
|
|
LOG_ERROR(Service_FS, "Unexpected file in path %s", full_path.c_str());
|
|
|
|
|
return ERROR_UNEXPECTED_FILE_OR_DIRECTORY_SDMC;
|
|
|
|
|
case PathParser::DirectoryFound:
|
|
|
|
|
break; // Expected 'success' case
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (deleter(full_path)) {
|
|
|
|
@ -197,6 +203,8 @@ ResultCode SDMCArchive::CreateFile(const FileSys::Path& path, u64 size) const {
|
|
|
|
|
case PathParser::FileFound:
|
|
|
|
|
LOG_ERROR(Service_FS, "%s already exists", full_path.c_str());
|
|
|
|
|
return ERROR_ALREADY_EXISTS;
|
|
|
|
|
case PathParser::NotFound:
|
|
|
|
|
break; // Expected 'success' case
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (size == 0) {
|
|
|
|
@ -238,6 +246,8 @@ ResultCode SDMCArchive::CreateDirectory(const Path& path) const {
|
|
|
|
|
case PathParser::FileFound:
|
|
|
|
|
LOG_ERROR(Service_FS, "%s already exists", full_path.c_str());
|
|
|
|
|
return ERROR_ALREADY_EXISTS;
|
|
|
|
|
case PathParser::NotFound:
|
|
|
|
|
break; // Expected 'success' case
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (FileUtil::CreateDir(mount_point + path.AsString())) {
|
|
|
|
@ -281,6 +291,8 @@ ResultVal<std::unique_ptr<DirectoryBackend>> SDMCArchive::OpenDirectory(const Pa
|
|
|
|
|
case PathParser::FileInPath:
|
|
|
|
|
LOG_ERROR(Service_FS, "Unexpected file in path %s", full_path.c_str());
|
|
|
|
|
return ERROR_UNEXPECTED_FILE_OR_DIRECTORY_SDMC;
|
|
|
|
|
case PathParser::DirectoryFound:
|
|
|
|
|
break; // Expected 'success' case
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
auto directory = std::make_unique<DiskDirectory>(full_path);
|
|
|
|
|