mirror of
https://github.com/skyline-emu/skyline.git
synced 2024-12-02 01:04:16 +01:00
Stub DeleteDirectory
Should allow deleting/rewriting saves in some games
This commit is contained in:
parent
bbd34ae7e7
commit
69ee3cfc66
@ -60,6 +60,13 @@ namespace skyline::service::fssrv {
|
|||||||
return {};
|
return {};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Result IFileSystem::DeleteDirectory(type::KSession &session, ipc::IpcRequest &request, ipc::IpcResponse &response) {
|
||||||
|
std::string path(request.inputBuf.at(0).as_string(true));
|
||||||
|
|
||||||
|
backing->DeleteDirectory(path);
|
||||||
|
return {};
|
||||||
|
}
|
||||||
|
|
||||||
Result IFileSystem::OpenDirectory(type::KSession &session, ipc::IpcRequest &request, ipc::IpcResponse &response) {
|
Result IFileSystem::OpenDirectory(type::KSession &session, ipc::IpcRequest &request, ipc::IpcResponse &response) {
|
||||||
std::string path(request.inputBuf.at(0).as_string(true));
|
std::string path(request.inputBuf.at(0).as_string(true));
|
||||||
|
|
||||||
|
@ -33,6 +33,11 @@ namespace skyline::service::fssrv {
|
|||||||
*/
|
*/
|
||||||
Result CreateDirectory(type::KSession &session, ipc::IpcRequest &request, ipc::IpcResponse &response);
|
Result CreateDirectory(type::KSession &session, ipc::IpcRequest &request, ipc::IpcResponse &response);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Deletes a directory at the specified path in the filesystem
|
||||||
|
*/
|
||||||
|
Result DeleteDirectory(type::KSession &session, ipc::IpcRequest &request, ipc::IpcResponse &response);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Queries the DirectoryEntryType of the given path
|
* @brief Queries the DirectoryEntryType of the given path
|
||||||
* @url https://switchbrew.org/wiki/Filesystem_services#GetEntryType
|
* @url https://switchbrew.org/wiki/Filesystem_services#GetEntryType
|
||||||
@ -60,6 +65,7 @@ namespace skyline::service::fssrv {
|
|||||||
SFUNC(0x0, IFileSystem, CreateFile),
|
SFUNC(0x0, IFileSystem, CreateFile),
|
||||||
SFUNC(0x1, IFileSystem, DeleteFile),
|
SFUNC(0x1, IFileSystem, DeleteFile),
|
||||||
SFUNC(0x2, IFileSystem, CreateDirectory),
|
SFUNC(0x2, IFileSystem, CreateDirectory),
|
||||||
|
SFUNC(0x3, IFileSystem, DeleteDirectory),
|
||||||
SFUNC(0x7, IFileSystem, GetEntryType),
|
SFUNC(0x7, IFileSystem, GetEntryType),
|
||||||
SFUNC(0x8, IFileSystem, OpenFile),
|
SFUNC(0x8, IFileSystem, OpenFile),
|
||||||
SFUNC(0x9, IFileSystem, OpenDirectory),
|
SFUNC(0x9, IFileSystem, OpenDirectory),
|
||||||
|
@ -20,6 +20,10 @@ namespace skyline::vfs {
|
|||||||
throw exception("This filesystem does not support deleting files");
|
throw exception("This filesystem does not support deleting files");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
virtual void DeleteDirectoryImpl(const std::string &path) {
|
||||||
|
throw exception("This filesystem does not support deleting directories");
|
||||||
|
}
|
||||||
|
|
||||||
virtual bool CreateDirectoryImpl(const std::string &path, bool parents) {
|
virtual bool CreateDirectoryImpl(const std::string &path, bool parents) {
|
||||||
throw exception("This filesystem does not support creating directories");
|
throw exception("This filesystem does not support creating directories");
|
||||||
};
|
};
|
||||||
@ -56,6 +60,10 @@ namespace skyline::vfs {
|
|||||||
DeleteFileImpl(path);
|
DeleteFileImpl(path);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void DeleteDirectory(const std::string &path) {
|
||||||
|
DeleteDirectoryImpl(path);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Creates a directory in the filesystem
|
* @brief Creates a directory in the filesystem
|
||||||
* @param path The path to where the directory should be created
|
* @param path The path to where the directory should be created
|
||||||
|
@ -43,6 +43,11 @@ namespace skyline::vfs {
|
|||||||
remove(fullPath.c_str());
|
remove(fullPath.c_str());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void OsFileSystem::DeleteDirectoryImpl(const std::string &path) {
|
||||||
|
auto fullPath{basePath + path};
|
||||||
|
std::filesystem::remove_all(fullPath.c_str());
|
||||||
|
}
|
||||||
|
|
||||||
bool OsFileSystem::CreateDirectoryImpl(const std::string &path, bool parents) {
|
bool OsFileSystem::CreateDirectoryImpl(const std::string &path, bool parents) {
|
||||||
auto fullPath{basePath + path + "/"};
|
auto fullPath{basePath + path + "/"};
|
||||||
|
|
||||||
|
@ -18,6 +18,8 @@ namespace skyline::vfs {
|
|||||||
|
|
||||||
void DeleteFileImpl(const std::string &path) override;
|
void DeleteFileImpl(const std::string &path) override;
|
||||||
|
|
||||||
|
void DeleteDirectoryImpl(const std::string &path) override;
|
||||||
|
|
||||||
bool CreateDirectoryImpl(const std::string &path, bool parents) override;
|
bool CreateDirectoryImpl(const std::string &path, bool parents) override;
|
||||||
|
|
||||||
std::shared_ptr<Backing> OpenFileImpl(const std::string &path, Backing::Mode mode) override;
|
std::shared_ptr<Backing> OpenFileImpl(const std::string &path, Backing::Mode mode) override;
|
||||||
|
Loading…
Reference in New Issue
Block a user