Added CreateDirectory function to service/fs.cpp, and in Archive.

This commit is contained in:
archshift 2014-10-28 22:52:56 -07:00
parent 2ca12e7f38
commit 04c90c395d
8 changed files with 103 additions and 4 deletions

View file

@ -380,6 +380,21 @@ Handle OpenFileFromArchive(Handle archive_handle, const std::string& path, const
return handle;
}
/**
* Create a Directory from an Archive
* @param archive_handle Handle to an open Archive object
* @param path Path to the Directory inside of the Archive
* @return Opened Directory object
*/
Result CreateDirectoryFromArchive(Handle archive_handle, const std::string& path) {
Archive* archive = Kernel::g_object_pool.GetFast<Archive>(archive_handle);
if (archive == nullptr)
return -1;
if (archive->backend->CreateDirectory(path))
return 0;
return -1;
}
/**
* Open a Directory from an Archive
* @param archive_handle Handle to an open Archive object

View file

@ -43,7 +43,15 @@ Handle CreateArchive(FileSys::Archive* backend, const std::string& name);
* @param mode Mode under which to open the File
* @return Opened File object
*/
Handle OpenFileFromArchive(Handle handle, const std::string& name, const FileSys::Mode mode);
Handle OpenFileFromArchive(Handle archive_handle, const std::string& name, const FileSys::Mode mode);
/**
* Create a Directory from an Archive
* @param archive_handle Handle to an open Archive object
* @param path Path to the Directory inside of the Archive
* @return Whether creation of directory succeeded
*/
Result CreateDirectoryFromArchive(Handle archive_handle, const std::string& name);
/**
* Open a Directory from an Archive
@ -51,7 +59,7 @@ Handle OpenFileFromArchive(Handle handle, const std::string& name, const FileSys
* @param path Path to the Directory inside of the Archive
* @return Opened Directory object
*/
Handle OpenDirectoryFromArchive(Handle handle, const std::string& name);
Handle OpenDirectoryFromArchive(Handle archive_handle, const std::string& name);
/// Initialize archives
void ArchiveInit();