diff options
| author | 2020-08-15 08:33:16 -0400 | |
|---|---|---|
| committer | 2020-08-16 06:52:40 -0400 | |
| commit | c4ed791164df7e3e74042a37a62077b4dc4ade91 (patch) | |
| tree | 12bbcc09d0db32a0b6b5dc1bc49245964486da63 /src/core/hle | |
| parent | Merge pull request #4528 from lioncash/discard (diff) | |
| download | yuzu-c4ed791164df7e3e74042a37a62077b4dc4ade91.tar.gz yuzu-c4ed791164df7e3e74042a37a62077b4dc4ade91.tar.xz yuzu-c4ed791164df7e3e74042a37a62077b4dc4ade91.zip | |
common/fileutil: Convert namespace to Common::FS
Migrates a remaining common file over to the Common namespace, making it
consistent with the rest of common files.
This also allows for high-traffic FS related code to alias the
filesystem function namespace as
namespace FS = Common::FS;
for more concise typing.
Diffstat (limited to 'src/core/hle')
| -rw-r--r-- | src/core/hle/service/acc/acc.cpp | 8 | ||||
| -rw-r--r-- | src/core/hle/service/acc/profile_manager.cpp | 22 | ||||
| -rw-r--r-- | src/core/hle/service/am/applets/web_browser.cpp | 16 | ||||
| -rw-r--r-- | src/core/hle/service/bcat/backend/boxcat.cpp | 20 | ||||
| -rw-r--r-- | src/core/hle/service/filesystem/filesystem.cpp | 80 |
5 files changed, 73 insertions, 73 deletions
diff --git a/src/core/hle/service/acc/acc.cpp b/src/core/hle/service/acc/acc.cpp index 63e4aeca0..eb54cb123 100644 --- a/src/core/hle/service/acc/acc.cpp +++ b/src/core/hle/service/acc/acc.cpp | |||
| @@ -35,7 +35,7 @@ constexpr ResultCode ERR_INVALID_BUFFER_SIZE{ErrorModule::Account, 30}; | |||
| 35 | constexpr ResultCode ERR_FAILED_SAVE_DATA{ErrorModule::Account, 100}; | 35 | constexpr ResultCode ERR_FAILED_SAVE_DATA{ErrorModule::Account, 100}; |
| 36 | 36 | ||
| 37 | static std::string GetImagePath(Common::UUID uuid) { | 37 | static std::string GetImagePath(Common::UUID uuid) { |
| 38 | return FileUtil::GetUserPath(FileUtil::UserPath::NANDDir) + | 38 | return Common::FS::GetUserPath(Common::FS::UserPath::NANDDir) + |
| 39 | "/system/save/8000000000000010/su/avators/" + uuid.FormatSwitch() + ".jpg"; | 39 | "/system/save/8000000000000010/su/avators/" + uuid.FormatSwitch() + ".jpg"; |
| 40 | } | 40 | } |
| 41 | 41 | ||
| @@ -318,7 +318,7 @@ protected: | |||
| 318 | IPC::ResponseBuilder rb{ctx, 3}; | 318 | IPC::ResponseBuilder rb{ctx, 3}; |
| 319 | rb.Push(RESULT_SUCCESS); | 319 | rb.Push(RESULT_SUCCESS); |
| 320 | 320 | ||
| 321 | const FileUtil::IOFile image(GetImagePath(user_id), "rb"); | 321 | const Common::FS::IOFile image(GetImagePath(user_id), "rb"); |
| 322 | if (!image.IsOpen()) { | 322 | if (!image.IsOpen()) { |
| 323 | LOG_WARNING(Service_ACC, | 323 | LOG_WARNING(Service_ACC, |
| 324 | "Failed to load user provided image! Falling back to built-in backup..."); | 324 | "Failed to load user provided image! Falling back to built-in backup..."); |
| @@ -340,7 +340,7 @@ protected: | |||
| 340 | IPC::ResponseBuilder rb{ctx, 3}; | 340 | IPC::ResponseBuilder rb{ctx, 3}; |
| 341 | rb.Push(RESULT_SUCCESS); | 341 | rb.Push(RESULT_SUCCESS); |
| 342 | 342 | ||
| 343 | const FileUtil::IOFile image(GetImagePath(user_id), "rb"); | 343 | const Common::FS::IOFile image(GetImagePath(user_id), "rb"); |
| 344 | 344 | ||
| 345 | if (!image.IsOpen()) { | 345 | if (!image.IsOpen()) { |
| 346 | LOG_WARNING(Service_ACC, | 346 | LOG_WARNING(Service_ACC, |
| @@ -405,7 +405,7 @@ protected: | |||
| 405 | ProfileData data; | 405 | ProfileData data; |
| 406 | std::memcpy(&data, user_data.data(), sizeof(ProfileData)); | 406 | std::memcpy(&data, user_data.data(), sizeof(ProfileData)); |
| 407 | 407 | ||
| 408 | FileUtil::IOFile image(GetImagePath(user_id), "wb"); | 408 | Common::FS::IOFile image(GetImagePath(user_id), "wb"); |
| 409 | 409 | ||
| 410 | if (!image.IsOpen() || !image.Resize(image_data.size()) || | 410 | if (!image.IsOpen() || !image.Resize(image_data.size()) || |
| 411 | image.WriteBytes(image_data.data(), image_data.size()) != image_data.size() || | 411 | image.WriteBytes(image_data.data(), image_data.size()) != image_data.size() || |
diff --git a/src/core/hle/service/acc/profile_manager.cpp b/src/core/hle/service/acc/profile_manager.cpp index a98d57b5c..9b829e957 100644 --- a/src/core/hle/service/acc/profile_manager.cpp +++ b/src/core/hle/service/acc/profile_manager.cpp | |||
| @@ -13,6 +13,7 @@ | |||
| 13 | 13 | ||
| 14 | namespace Service::Account { | 14 | namespace Service::Account { |
| 15 | 15 | ||
| 16 | namespace FS = Common::FS; | ||
| 16 | using Common::UUID; | 17 | using Common::UUID; |
| 17 | 18 | ||
| 18 | struct UserRaw { | 19 | struct UserRaw { |
| @@ -318,9 +319,8 @@ bool ProfileManager::SetProfileBaseAndData(Common::UUID uuid, const ProfileBase& | |||
| 318 | } | 319 | } |
| 319 | 320 | ||
| 320 | void ProfileManager::ParseUserSaveFile() { | 321 | void ProfileManager::ParseUserSaveFile() { |
| 321 | FileUtil::IOFile save(FileUtil::GetUserPath(FileUtil::UserPath::NANDDir) + | 322 | const FS::IOFile save( |
| 322 | ACC_SAVE_AVATORS_BASE_PATH + "profiles.dat", | 323 | FS::GetUserPath(FS::UserPath::NANDDir) + ACC_SAVE_AVATORS_BASE_PATH + "profiles.dat", "rb"); |
| 323 | "rb"); | ||
| 324 | 324 | ||
| 325 | if (!save.IsOpen()) { | 325 | if (!save.IsOpen()) { |
| 326 | LOG_WARNING(Service_ACC, "Failed to load profile data from save data... Generating new " | 326 | LOG_WARNING(Service_ACC, "Failed to load profile data from save data... Generating new " |
| @@ -366,22 +366,22 @@ void ProfileManager::WriteUserSaveFile() { | |||
| 366 | }; | 366 | }; |
| 367 | } | 367 | } |
| 368 | 368 | ||
| 369 | const auto raw_path = | 369 | const auto raw_path = FS::GetUserPath(FS::UserPath::NANDDir) + "/system/save/8000000000000010"; |
| 370 | FileUtil::GetUserPath(FileUtil::UserPath::NANDDir) + "/system/save/8000000000000010"; | 370 | if (FS::Exists(raw_path) && !FS::IsDirectory(raw_path)) { |
| 371 | if (FileUtil::Exists(raw_path) && !FileUtil::IsDirectory(raw_path)) | 371 | FS::Delete(raw_path); |
| 372 | FileUtil::Delete(raw_path); | 372 | } |
| 373 | 373 | ||
| 374 | const auto path = FileUtil::GetUserPath(FileUtil::UserPath::NANDDir) + | 374 | const auto path = |
| 375 | ACC_SAVE_AVATORS_BASE_PATH + "profiles.dat"; | 375 | FS::GetUserPath(FS::UserPath::NANDDir) + ACC_SAVE_AVATORS_BASE_PATH + "profiles.dat"; |
| 376 | 376 | ||
| 377 | if (!FileUtil::CreateFullPath(path)) { | 377 | if (!FS::CreateFullPath(path)) { |
| 378 | LOG_WARNING(Service_ACC, "Failed to create full path of profiles.dat. Create the directory " | 378 | LOG_WARNING(Service_ACC, "Failed to create full path of profiles.dat. Create the directory " |
| 379 | "nand/system/save/8000000000000010/su/avators to mitigate this " | 379 | "nand/system/save/8000000000000010/su/avators to mitigate this " |
| 380 | "issue."); | 380 | "issue."); |
| 381 | return; | 381 | return; |
| 382 | } | 382 | } |
| 383 | 383 | ||
| 384 | FileUtil::IOFile save(path, "wb"); | 384 | FS::IOFile save(path, "wb"); |
| 385 | 385 | ||
| 386 | if (!save.IsOpen()) { | 386 | if (!save.IsOpen()) { |
| 387 | LOG_WARNING(Service_ACC, "Failed to write save data to file... No changes to user data " | 387 | LOG_WARNING(Service_ACC, "Failed to write save data to file... No changes to user data " |
diff --git a/src/core/hle/service/am/applets/web_browser.cpp b/src/core/hle/service/am/applets/web_browser.cpp index 4157fbf39..efe595c4f 100644 --- a/src/core/hle/service/am/applets/web_browser.cpp +++ b/src/core/hle/service/am/applets/web_browser.cpp | |||
| @@ -293,8 +293,8 @@ void WebBrowser::Finalize() { | |||
| 293 | broker.PushNormalDataFromApplet(std::make_shared<IStorage>(std::move(data))); | 293 | broker.PushNormalDataFromApplet(std::make_shared<IStorage>(std::move(data))); |
| 294 | broker.SignalStateChanged(); | 294 | broker.SignalStateChanged(); |
| 295 | 295 | ||
| 296 | if (!temporary_dir.empty() && FileUtil::IsDirectory(temporary_dir)) { | 296 | if (!temporary_dir.empty() && Common::FS::IsDirectory(temporary_dir)) { |
| 297 | FileUtil::DeleteDirRecursively(temporary_dir); | 297 | Common::FS::DeleteDirRecursively(temporary_dir); |
| 298 | } | 298 | } |
| 299 | } | 299 | } |
| 300 | 300 | ||
| @@ -452,10 +452,10 @@ void WebBrowser::InitializeOffline() { | |||
| 452 | }; | 452 | }; |
| 453 | 453 | ||
| 454 | temporary_dir = | 454 | temporary_dir = |
| 455 | FileUtil::SanitizePath(FileUtil::GetUserPath(FileUtil::UserPath::CacheDir) + "web_applet_" + | 455 | Common::FS::SanitizePath(Common::FS::GetUserPath(Common::FS::UserPath::CacheDir) + |
| 456 | WEB_SOURCE_NAMES[static_cast<u32>(source) - 1], | 456 | "web_applet_" + WEB_SOURCE_NAMES[static_cast<u32>(source) - 1], |
| 457 | FileUtil::DirectorySeparator::PlatformDefault); | 457 | Common::FS::DirectorySeparator::PlatformDefault); |
| 458 | FileUtil::DeleteDirRecursively(temporary_dir); | 458 | Common::FS::DeleteDirRecursively(temporary_dir); |
| 459 | 459 | ||
| 460 | u64 title_id = 0; // 0 corresponds to current process | 460 | u64 title_id = 0; // 0 corresponds to current process |
| 461 | ASSERT(args[WebArgTLVType::ApplicationID].size() >= 0x8); | 461 | ASSERT(args[WebArgTLVType::ApplicationID].size() >= 0x8); |
| @@ -492,8 +492,8 @@ void WebBrowser::InitializeOffline() { | |||
| 492 | } | 492 | } |
| 493 | 493 | ||
| 494 | filename = | 494 | filename = |
| 495 | FileUtil::SanitizePath(temporary_dir + path_additional_directory + DIR_SEP + filename, | 495 | Common::FS::SanitizePath(temporary_dir + path_additional_directory + DIR_SEP + filename, |
| 496 | FileUtil::DirectorySeparator::PlatformDefault); | 496 | Common::FS::DirectorySeparator::PlatformDefault); |
| 497 | } | 497 | } |
| 498 | 498 | ||
| 499 | void WebBrowser::ExecuteShop() { | 499 | void WebBrowser::ExecuteShop() { |
diff --git a/src/core/hle/service/bcat/backend/boxcat.cpp b/src/core/hle/service/bcat/backend/boxcat.cpp index 51c2ba964..ca021a99f 100644 --- a/src/core/hle/service/bcat/backend/boxcat.cpp +++ b/src/core/hle/service/bcat/backend/boxcat.cpp | |||
| @@ -89,12 +89,12 @@ constexpr u32 TIMEOUT_SECONDS = 30; | |||
| 89 | 89 | ||
| 90 | std::string GetBINFilePath(u64 title_id) { | 90 | std::string GetBINFilePath(u64 title_id) { |
| 91 | return fmt::format("{}bcat/{:016X}/launchparam.bin", | 91 | return fmt::format("{}bcat/{:016X}/launchparam.bin", |
| 92 | FileUtil::GetUserPath(FileUtil::UserPath::CacheDir), title_id); | 92 | Common::FS::GetUserPath(Common::FS::UserPath::CacheDir), title_id); |
| 93 | } | 93 | } |
| 94 | 94 | ||
| 95 | std::string GetZIPFilePath(u64 title_id) { | 95 | std::string GetZIPFilePath(u64 title_id) { |
| 96 | return fmt::format("{}bcat/{:016X}/data.zip", | 96 | return fmt::format("{}bcat/{:016X}/data.zip", |
| 97 | FileUtil::GetUserPath(FileUtil::UserPath::CacheDir), title_id); | 97 | Common::FS::GetUserPath(Common::FS::UserPath::CacheDir), title_id); |
| 98 | } | 98 | } |
| 99 | 99 | ||
| 100 | // If the error is something the user should know about (build ID mismatch, bad client version), | 100 | // If the error is something the user should know about (build ID mismatch, bad client version), |
| @@ -205,8 +205,8 @@ private: | |||
| 205 | {std::string("Game-Build-Id"), fmt::format("{:016X}", build_id)}, | 205 | {std::string("Game-Build-Id"), fmt::format("{:016X}", build_id)}, |
| 206 | }; | 206 | }; |
| 207 | 207 | ||
| 208 | if (FileUtil::Exists(path)) { | 208 | if (Common::FS::Exists(path)) { |
| 209 | FileUtil::IOFile file{path, "rb"}; | 209 | Common::FS::IOFile file{path, "rb"}; |
| 210 | if (file.IsOpen()) { | 210 | if (file.IsOpen()) { |
| 211 | std::vector<u8> bytes(file.GetSize()); | 211 | std::vector<u8> bytes(file.GetSize()); |
| 212 | file.ReadBytes(bytes.data(), bytes.size()); | 212 | file.ReadBytes(bytes.data(), bytes.size()); |
| @@ -236,8 +236,8 @@ private: | |||
| 236 | return DownloadResult::InvalidContentType; | 236 | return DownloadResult::InvalidContentType; |
| 237 | } | 237 | } |
| 238 | 238 | ||
| 239 | FileUtil::CreateFullPath(path); | 239 | Common::FS::CreateFullPath(path); |
| 240 | FileUtil::IOFile file{path, "wb"}; | 240 | Common::FS::IOFile file{path, "wb"}; |
| 241 | if (!file.IsOpen()) | 241 | if (!file.IsOpen()) |
| 242 | return DownloadResult::GeneralFSError; | 242 | return DownloadResult::GeneralFSError; |
| 243 | if (!file.Resize(response->body.size())) | 243 | if (!file.Resize(response->body.size())) |
| @@ -290,7 +290,7 @@ void SynchronizeInternal(AM::Applets::AppletManager& applet_manager, DirectoryGe | |||
| 290 | LOG_ERROR(Service_BCAT, "Boxcat synchronization failed with error '{}'!", res); | 290 | LOG_ERROR(Service_BCAT, "Boxcat synchronization failed with error '{}'!", res); |
| 291 | 291 | ||
| 292 | if (res == DownloadResult::NoMatchBuildId || res == DownloadResult::NoMatchTitleId) { | 292 | if (res == DownloadResult::NoMatchBuildId || res == DownloadResult::NoMatchTitleId) { |
| 293 | FileUtil::Delete(zip_path); | 293 | Common::FS::Delete(zip_path); |
| 294 | } | 294 | } |
| 295 | 295 | ||
| 296 | HandleDownloadDisplayResult(applet_manager, res); | 296 | HandleDownloadDisplayResult(applet_manager, res); |
| @@ -300,7 +300,7 @@ void SynchronizeInternal(AM::Applets::AppletManager& applet_manager, DirectoryGe | |||
| 300 | 300 | ||
| 301 | progress.StartProcessingDataList(); | 301 | progress.StartProcessingDataList(); |
| 302 | 302 | ||
| 303 | FileUtil::IOFile zip{zip_path, "rb"}; | 303 | Common::FS::IOFile zip{zip_path, "rb"}; |
| 304 | const auto size = zip.GetSize(); | 304 | const auto size = zip.GetSize(); |
| 305 | std::vector<u8> bytes(size); | 305 | std::vector<u8> bytes(size); |
| 306 | if (!zip.IsOpen() || size == 0 || zip.ReadBytes(bytes.data(), bytes.size()) != bytes.size()) { | 306 | if (!zip.IsOpen() || size == 0 || zip.ReadBytes(bytes.data(), bytes.size()) != bytes.size()) { |
| @@ -420,7 +420,7 @@ std::optional<std::vector<u8>> Boxcat::GetLaunchParameter(TitleIDVersion title) | |||
| 420 | LOG_ERROR(Service_BCAT, "Boxcat synchronization failed with error '{}'!", res); | 420 | LOG_ERROR(Service_BCAT, "Boxcat synchronization failed with error '{}'!", res); |
| 421 | 421 | ||
| 422 | if (res == DownloadResult::NoMatchBuildId || res == DownloadResult::NoMatchTitleId) { | 422 | if (res == DownloadResult::NoMatchBuildId || res == DownloadResult::NoMatchTitleId) { |
| 423 | FileUtil::Delete(path); | 423 | Common::FS::Delete(path); |
| 424 | } | 424 | } |
| 425 | 425 | ||
| 426 | HandleDownloadDisplayResult(applet_manager, res); | 426 | HandleDownloadDisplayResult(applet_manager, res); |
| @@ -428,7 +428,7 @@ std::optional<std::vector<u8>> Boxcat::GetLaunchParameter(TitleIDVersion title) | |||
| 428 | } | 428 | } |
| 429 | } | 429 | } |
| 430 | 430 | ||
| 431 | FileUtil::IOFile bin{path, "rb"}; | 431 | Common::FS::IOFile bin{path, "rb"}; |
| 432 | const auto size = bin.GetSize(); | 432 | const auto size = bin.GetSize(); |
| 433 | std::vector<u8> bytes(size); | 433 | std::vector<u8> bytes(size); |
| 434 | if (!bin.IsOpen() || size == 0 || bin.ReadBytes(bytes.data(), bytes.size()) != bytes.size()) { | 434 | if (!bin.IsOpen() || size == 0 || bin.ReadBytes(bytes.data(), bytes.size()) != bytes.size()) { |
diff --git a/src/core/hle/service/filesystem/filesystem.cpp b/src/core/hle/service/filesystem/filesystem.cpp index 4490f8e4c..2cee1193c 100644 --- a/src/core/hle/service/filesystem/filesystem.cpp +++ b/src/core/hle/service/filesystem/filesystem.cpp | |||
| @@ -36,7 +36,7 @@ constexpr u64 SUFFICIENT_SAVE_DATA_SIZE = 0xF0000000; | |||
| 36 | 36 | ||
| 37 | static FileSys::VirtualDir GetDirectoryRelativeWrapped(FileSys::VirtualDir base, | 37 | static FileSys::VirtualDir GetDirectoryRelativeWrapped(FileSys::VirtualDir base, |
| 38 | std::string_view dir_name_) { | 38 | std::string_view dir_name_) { |
| 39 | std::string dir_name(FileUtil::SanitizePath(dir_name_)); | 39 | std::string dir_name(Common::FS::SanitizePath(dir_name_)); |
| 40 | if (dir_name.empty() || dir_name == "." || dir_name == "/" || dir_name == "\\") | 40 | if (dir_name.empty() || dir_name == "." || dir_name == "/" || dir_name == "\\") |
| 41 | return base; | 41 | return base; |
| 42 | 42 | ||
| @@ -53,13 +53,13 @@ std::string VfsDirectoryServiceWrapper::GetName() const { | |||
| 53 | } | 53 | } |
| 54 | 54 | ||
| 55 | ResultCode VfsDirectoryServiceWrapper::CreateFile(const std::string& path_, u64 size) const { | 55 | ResultCode VfsDirectoryServiceWrapper::CreateFile(const std::string& path_, u64 size) const { |
| 56 | std::string path(FileUtil::SanitizePath(path_)); | 56 | std::string path(Common::FS::SanitizePath(path_)); |
| 57 | auto dir = GetDirectoryRelativeWrapped(backing, FileUtil::GetParentPath(path)); | 57 | auto dir = GetDirectoryRelativeWrapped(backing, Common::FS::GetParentPath(path)); |
| 58 | // dir can be nullptr if path contains subdirectories, create those prior to creating the file. | 58 | // dir can be nullptr if path contains subdirectories, create those prior to creating the file. |
| 59 | if (dir == nullptr) { | 59 | if (dir == nullptr) { |
| 60 | dir = backing->CreateSubdirectory(FileUtil::GetParentPath(path)); | 60 | dir = backing->CreateSubdirectory(Common::FS::GetParentPath(path)); |
| 61 | } | 61 | } |
| 62 | auto file = dir->CreateFile(FileUtil::GetFilename(path)); | 62 | auto file = dir->CreateFile(Common::FS::GetFilename(path)); |
| 63 | if (file == nullptr) { | 63 | if (file == nullptr) { |
| 64 | // TODO(DarkLordZach): Find a better error code for this | 64 | // TODO(DarkLordZach): Find a better error code for this |
| 65 | return RESULT_UNKNOWN; | 65 | return RESULT_UNKNOWN; |
| @@ -72,17 +72,17 @@ ResultCode VfsDirectoryServiceWrapper::CreateFile(const std::string& path_, u64 | |||
| 72 | } | 72 | } |
| 73 | 73 | ||
| 74 | ResultCode VfsDirectoryServiceWrapper::DeleteFile(const std::string& path_) const { | 74 | ResultCode VfsDirectoryServiceWrapper::DeleteFile(const std::string& path_) const { |
| 75 | std::string path(FileUtil::SanitizePath(path_)); | 75 | std::string path(Common::FS::SanitizePath(path_)); |
| 76 | if (path.empty()) { | 76 | if (path.empty()) { |
| 77 | // TODO(DarkLordZach): Why do games call this and what should it do? Works as is but... | 77 | // TODO(DarkLordZach): Why do games call this and what should it do? Works as is but... |
| 78 | return RESULT_SUCCESS; | 78 | return RESULT_SUCCESS; |
| 79 | } | 79 | } |
| 80 | 80 | ||
| 81 | auto dir = GetDirectoryRelativeWrapped(backing, FileUtil::GetParentPath(path)); | 81 | auto dir = GetDirectoryRelativeWrapped(backing, Common::FS::GetParentPath(path)); |
| 82 | if (dir->GetFile(FileUtil::GetFilename(path)) == nullptr) { | 82 | if (dir->GetFile(Common::FS::GetFilename(path)) == nullptr) { |
| 83 | return FileSys::ERROR_PATH_NOT_FOUND; | 83 | return FileSys::ERROR_PATH_NOT_FOUND; |
| 84 | } | 84 | } |
| 85 | if (!dir->DeleteFile(FileUtil::GetFilename(path))) { | 85 | if (!dir->DeleteFile(Common::FS::GetFilename(path))) { |
| 86 | // TODO(DarkLordZach): Find a better error code for this | 86 | // TODO(DarkLordZach): Find a better error code for this |
| 87 | return RESULT_UNKNOWN; | 87 | return RESULT_UNKNOWN; |
| 88 | } | 88 | } |
| @@ -91,11 +91,11 @@ ResultCode VfsDirectoryServiceWrapper::DeleteFile(const std::string& path_) cons | |||
| 91 | } | 91 | } |
| 92 | 92 | ||
| 93 | ResultCode VfsDirectoryServiceWrapper::CreateDirectory(const std::string& path_) const { | 93 | ResultCode VfsDirectoryServiceWrapper::CreateDirectory(const std::string& path_) const { |
| 94 | std::string path(FileUtil::SanitizePath(path_)); | 94 | std::string path(Common::FS::SanitizePath(path_)); |
| 95 | auto dir = GetDirectoryRelativeWrapped(backing, FileUtil::GetParentPath(path)); | 95 | auto dir = GetDirectoryRelativeWrapped(backing, Common::FS::GetParentPath(path)); |
| 96 | if (dir == nullptr && FileUtil::GetFilename(FileUtil::GetParentPath(path)).empty()) | 96 | if (dir == nullptr && Common::FS::GetFilename(Common::FS::GetParentPath(path)).empty()) |
| 97 | dir = backing; | 97 | dir = backing; |
| 98 | auto new_dir = dir->CreateSubdirectory(FileUtil::GetFilename(path)); | 98 | auto new_dir = dir->CreateSubdirectory(Common::FS::GetFilename(path)); |
| 99 | if (new_dir == nullptr) { | 99 | if (new_dir == nullptr) { |
| 100 | // TODO(DarkLordZach): Find a better error code for this | 100 | // TODO(DarkLordZach): Find a better error code for this |
| 101 | return RESULT_UNKNOWN; | 101 | return RESULT_UNKNOWN; |
| @@ -104,9 +104,9 @@ ResultCode VfsDirectoryServiceWrapper::CreateDirectory(const std::string& path_) | |||
| 104 | } | 104 | } |
| 105 | 105 | ||
| 106 | ResultCode VfsDirectoryServiceWrapper::DeleteDirectory(const std::string& path_) const { | 106 | ResultCode VfsDirectoryServiceWrapper::DeleteDirectory(const std::string& path_) const { |
| 107 | std::string path(FileUtil::SanitizePath(path_)); | 107 | std::string path(Common::FS::SanitizePath(path_)); |
| 108 | auto dir = GetDirectoryRelativeWrapped(backing, FileUtil::GetParentPath(path)); | 108 | auto dir = GetDirectoryRelativeWrapped(backing, Common::FS::GetParentPath(path)); |
| 109 | if (!dir->DeleteSubdirectory(FileUtil::GetFilename(path))) { | 109 | if (!dir->DeleteSubdirectory(Common::FS::GetFilename(path))) { |
| 110 | // TODO(DarkLordZach): Find a better error code for this | 110 | // TODO(DarkLordZach): Find a better error code for this |
| 111 | return RESULT_UNKNOWN; | 111 | return RESULT_UNKNOWN; |
| 112 | } | 112 | } |
| @@ -114,9 +114,9 @@ ResultCode VfsDirectoryServiceWrapper::DeleteDirectory(const std::string& path_) | |||
| 114 | } | 114 | } |
| 115 | 115 | ||
| 116 | ResultCode VfsDirectoryServiceWrapper::DeleteDirectoryRecursively(const std::string& path_) const { | 116 | ResultCode VfsDirectoryServiceWrapper::DeleteDirectoryRecursively(const std::string& path_) const { |
| 117 | std::string path(FileUtil::SanitizePath(path_)); | 117 | std::string path(Common::FS::SanitizePath(path_)); |
| 118 | auto dir = GetDirectoryRelativeWrapped(backing, FileUtil::GetParentPath(path)); | 118 | auto dir = GetDirectoryRelativeWrapped(backing, Common::FS::GetParentPath(path)); |
| 119 | if (!dir->DeleteSubdirectoryRecursive(FileUtil::GetFilename(path))) { | 119 | if (!dir->DeleteSubdirectoryRecursive(Common::FS::GetFilename(path))) { |
| 120 | // TODO(DarkLordZach): Find a better error code for this | 120 | // TODO(DarkLordZach): Find a better error code for this |
| 121 | return RESULT_UNKNOWN; | 121 | return RESULT_UNKNOWN; |
| 122 | } | 122 | } |
| @@ -124,10 +124,10 @@ ResultCode VfsDirectoryServiceWrapper::DeleteDirectoryRecursively(const std::str | |||
| 124 | } | 124 | } |
| 125 | 125 | ||
| 126 | ResultCode VfsDirectoryServiceWrapper::CleanDirectoryRecursively(const std::string& path) const { | 126 | ResultCode VfsDirectoryServiceWrapper::CleanDirectoryRecursively(const std::string& path) const { |
| 127 | const std::string sanitized_path(FileUtil::SanitizePath(path)); | 127 | const std::string sanitized_path(Common::FS::SanitizePath(path)); |
| 128 | auto dir = GetDirectoryRelativeWrapped(backing, FileUtil::GetParentPath(sanitized_path)); | 128 | auto dir = GetDirectoryRelativeWrapped(backing, Common::FS::GetParentPath(sanitized_path)); |
| 129 | 129 | ||
| 130 | if (!dir->CleanSubdirectoryRecursive(FileUtil::GetFilename(sanitized_path))) { | 130 | if (!dir->CleanSubdirectoryRecursive(Common::FS::GetFilename(sanitized_path))) { |
| 131 | // TODO(DarkLordZach): Find a better error code for this | 131 | // TODO(DarkLordZach): Find a better error code for this |
| 132 | return RESULT_UNKNOWN; | 132 | return RESULT_UNKNOWN; |
| 133 | } | 133 | } |
| @@ -137,14 +137,14 @@ ResultCode VfsDirectoryServiceWrapper::CleanDirectoryRecursively(const std::stri | |||
| 137 | 137 | ||
| 138 | ResultCode VfsDirectoryServiceWrapper::RenameFile(const std::string& src_path_, | 138 | ResultCode VfsDirectoryServiceWrapper::RenameFile(const std::string& src_path_, |
| 139 | const std::string& dest_path_) const { | 139 | const std::string& dest_path_) const { |
| 140 | std::string src_path(FileUtil::SanitizePath(src_path_)); | 140 | std::string src_path(Common::FS::SanitizePath(src_path_)); |
| 141 | std::string dest_path(FileUtil::SanitizePath(dest_path_)); | 141 | std::string dest_path(Common::FS::SanitizePath(dest_path_)); |
| 142 | auto src = backing->GetFileRelative(src_path); | 142 | auto src = backing->GetFileRelative(src_path); |
| 143 | if (FileUtil::GetParentPath(src_path) == FileUtil::GetParentPath(dest_path)) { | 143 | if (Common::FS::GetParentPath(src_path) == Common::FS::GetParentPath(dest_path)) { |
| 144 | // Use more-optimized vfs implementation rename. | 144 | // Use more-optimized vfs implementation rename. |
| 145 | if (src == nullptr) | 145 | if (src == nullptr) |
| 146 | return FileSys::ERROR_PATH_NOT_FOUND; | 146 | return FileSys::ERROR_PATH_NOT_FOUND; |
| 147 | if (!src->Rename(FileUtil::GetFilename(dest_path))) { | 147 | if (!src->Rename(Common::FS::GetFilename(dest_path))) { |
| 148 | // TODO(DarkLordZach): Find a better error code for this | 148 | // TODO(DarkLordZach): Find a better error code for this |
| 149 | return RESULT_UNKNOWN; | 149 | return RESULT_UNKNOWN; |
| 150 | } | 150 | } |
| @@ -162,7 +162,7 @@ ResultCode VfsDirectoryServiceWrapper::RenameFile(const std::string& src_path_, | |||
| 162 | ASSERT_MSG(dest->WriteBytes(src->ReadAllBytes()) == src->GetSize(), | 162 | ASSERT_MSG(dest->WriteBytes(src->ReadAllBytes()) == src->GetSize(), |
| 163 | "Could not write all of the bytes but everything else has succeded."); | 163 | "Could not write all of the bytes but everything else has succeded."); |
| 164 | 164 | ||
| 165 | if (!src->GetContainingDirectory()->DeleteFile(FileUtil::GetFilename(src_path))) { | 165 | if (!src->GetContainingDirectory()->DeleteFile(Common::FS::GetFilename(src_path))) { |
| 166 | // TODO(DarkLordZach): Find a better error code for this | 166 | // TODO(DarkLordZach): Find a better error code for this |
| 167 | return RESULT_UNKNOWN; | 167 | return RESULT_UNKNOWN; |
| 168 | } | 168 | } |
| @@ -172,14 +172,14 @@ ResultCode VfsDirectoryServiceWrapper::RenameFile(const std::string& src_path_, | |||
| 172 | 172 | ||
| 173 | ResultCode VfsDirectoryServiceWrapper::RenameDirectory(const std::string& src_path_, | 173 | ResultCode VfsDirectoryServiceWrapper::RenameDirectory(const std::string& src_path_, |
| 174 | const std::string& dest_path_) const { | 174 | const std::string& dest_path_) const { |
| 175 | std::string src_path(FileUtil::SanitizePath(src_path_)); | 175 | std::string src_path(Common::FS::SanitizePath(src_path_)); |
| 176 | std::string dest_path(FileUtil::SanitizePath(dest_path_)); | 176 | std::string dest_path(Common::FS::SanitizePath(dest_path_)); |
| 177 | auto src = GetDirectoryRelativeWrapped(backing, src_path); | 177 | auto src = GetDirectoryRelativeWrapped(backing, src_path); |
| 178 | if (FileUtil::GetParentPath(src_path) == FileUtil::GetParentPath(dest_path)) { | 178 | if (Common::FS::GetParentPath(src_path) == Common::FS::GetParentPath(dest_path)) { |
| 179 | // Use more-optimized vfs implementation rename. | 179 | // Use more-optimized vfs implementation rename. |
| 180 | if (src == nullptr) | 180 | if (src == nullptr) |
| 181 | return FileSys::ERROR_PATH_NOT_FOUND; | 181 | return FileSys::ERROR_PATH_NOT_FOUND; |
| 182 | if (!src->Rename(FileUtil::GetFilename(dest_path))) { | 182 | if (!src->Rename(Common::FS::GetFilename(dest_path))) { |
| 183 | // TODO(DarkLordZach): Find a better error code for this | 183 | // TODO(DarkLordZach): Find a better error code for this |
| 184 | return RESULT_UNKNOWN; | 184 | return RESULT_UNKNOWN; |
| 185 | } | 185 | } |
| @@ -198,7 +198,7 @@ ResultCode VfsDirectoryServiceWrapper::RenameDirectory(const std::string& src_pa | |||
| 198 | 198 | ||
| 199 | ResultVal<FileSys::VirtualFile> VfsDirectoryServiceWrapper::OpenFile(const std::string& path_, | 199 | ResultVal<FileSys::VirtualFile> VfsDirectoryServiceWrapper::OpenFile(const std::string& path_, |
| 200 | FileSys::Mode mode) const { | 200 | FileSys::Mode mode) const { |
| 201 | const std::string path(FileUtil::SanitizePath(path_)); | 201 | const std::string path(Common::FS::SanitizePath(path_)); |
| 202 | std::string_view npath = path; | 202 | std::string_view npath = path; |
| 203 | while (!npath.empty() && (npath[0] == '/' || npath[0] == '\\')) { | 203 | while (!npath.empty() && (npath[0] == '/' || npath[0] == '\\')) { |
| 204 | npath.remove_prefix(1); | 204 | npath.remove_prefix(1); |
| @@ -218,7 +218,7 @@ ResultVal<FileSys::VirtualFile> VfsDirectoryServiceWrapper::OpenFile(const std:: | |||
| 218 | } | 218 | } |
| 219 | 219 | ||
| 220 | ResultVal<FileSys::VirtualDir> VfsDirectoryServiceWrapper::OpenDirectory(const std::string& path_) { | 220 | ResultVal<FileSys::VirtualDir> VfsDirectoryServiceWrapper::OpenDirectory(const std::string& path_) { |
| 221 | std::string path(FileUtil::SanitizePath(path_)); | 221 | std::string path(Common::FS::SanitizePath(path_)); |
| 222 | auto dir = GetDirectoryRelativeWrapped(backing, path); | 222 | auto dir = GetDirectoryRelativeWrapped(backing, path); |
| 223 | if (dir == nullptr) { | 223 | if (dir == nullptr) { |
| 224 | // TODO(DarkLordZach): Find a better error code for this | 224 | // TODO(DarkLordZach): Find a better error code for this |
| @@ -229,11 +229,11 @@ ResultVal<FileSys::VirtualDir> VfsDirectoryServiceWrapper::OpenDirectory(const s | |||
| 229 | 229 | ||
| 230 | ResultVal<FileSys::EntryType> VfsDirectoryServiceWrapper::GetEntryType( | 230 | ResultVal<FileSys::EntryType> VfsDirectoryServiceWrapper::GetEntryType( |
| 231 | const std::string& path_) const { | 231 | const std::string& path_) const { |
| 232 | std::string path(FileUtil::SanitizePath(path_)); | 232 | std::string path(Common::FS::SanitizePath(path_)); |
| 233 | auto dir = GetDirectoryRelativeWrapped(backing, FileUtil::GetParentPath(path)); | 233 | auto dir = GetDirectoryRelativeWrapped(backing, Common::FS::GetParentPath(path)); |
| 234 | if (dir == nullptr) | 234 | if (dir == nullptr) |
| 235 | return FileSys::ERROR_PATH_NOT_FOUND; | 235 | return FileSys::ERROR_PATH_NOT_FOUND; |
| 236 | auto filename = FileUtil::GetFilename(path); | 236 | auto filename = Common::FS::GetFilename(path); |
| 237 | // TODO(Subv): Some games use the '/' path, find out what this means. | 237 | // TODO(Subv): Some games use the '/' path, find out what this means. |
| 238 | if (filename.empty()) | 238 | if (filename.empty()) |
| 239 | return MakeResult(FileSys::EntryType::Directory); | 239 | return MakeResult(FileSys::EntryType::Directory); |
| @@ -695,13 +695,13 @@ void FileSystemController::CreateFactories(FileSys::VfsFilesystem& vfs, bool ove | |||
| 695 | sdmc_factory = nullptr; | 695 | sdmc_factory = nullptr; |
| 696 | } | 696 | } |
| 697 | 697 | ||
| 698 | auto nand_directory = vfs.OpenDirectory(FileUtil::GetUserPath(FileUtil::UserPath::NANDDir), | 698 | auto nand_directory = vfs.OpenDirectory(Common::FS::GetUserPath(Common::FS::UserPath::NANDDir), |
| 699 | FileSys::Mode::ReadWrite); | 699 | FileSys::Mode::ReadWrite); |
| 700 | auto sd_directory = vfs.OpenDirectory(FileUtil::GetUserPath(FileUtil::UserPath::SDMCDir), | 700 | auto sd_directory = vfs.OpenDirectory(Common::FS::GetUserPath(Common::FS::UserPath::SDMCDir), |
| 701 | FileSys::Mode::ReadWrite); | 701 | FileSys::Mode::ReadWrite); |
| 702 | auto load_directory = vfs.OpenDirectory(FileUtil::GetUserPath(FileUtil::UserPath::LoadDir), | 702 | auto load_directory = vfs.OpenDirectory(Common::FS::GetUserPath(Common::FS::UserPath::LoadDir), |
| 703 | FileSys::Mode::ReadWrite); | 703 | FileSys::Mode::ReadWrite); |
| 704 | auto dump_directory = vfs.OpenDirectory(FileUtil::GetUserPath(FileUtil::UserPath::DumpDir), | 704 | auto dump_directory = vfs.OpenDirectory(Common::FS::GetUserPath(Common::FS::UserPath::DumpDir), |
| 705 | FileSys::Mode::ReadWrite); | 705 | FileSys::Mode::ReadWrite); |
| 706 | 706 | ||
| 707 | if (bis_factory == nullptr) { | 707 | if (bis_factory == nullptr) { |