53 lines
1.1 KiB
C++
53 lines
1.1 KiB
C++
#include "IFSFolder.h"
|
|
|
|
namespace LifeCore
|
|
{
|
|
IFSFolder::~IFSFolder(void)
|
|
{
|
|
for( FolderMap::iterator it = g_folderCollection.begin(); it != g_folderCollection.end(); it++ )
|
|
delete it->second;
|
|
}
|
|
IFSFolder::IFSFolder()
|
|
|
|
{
|
|
}
|
|
IFSFolder::IFSFolder(const String& folderName, const String& entryName)
|
|
{
|
|
this->Name = folderName;
|
|
this->EntryName = entryName;
|
|
|
|
CreateDirectoryA(EntryName.c_str(), NULL);
|
|
}
|
|
IFolder* IFSFolder::NewFolder(const String& name)
|
|
{
|
|
IFolder* test;
|
|
if(this->GetFolder(name, &test) != SC_OK)
|
|
{
|
|
IFSFolder* newFolder = new IFSFolder(name, this->EntryName + name + _text("\\"));
|
|
newFolder->setParent(this);
|
|
newFolder->Provider = this->Provider;
|
|
this->AddFolder(newFolder);
|
|
return newFolder;
|
|
}
|
|
else
|
|
{
|
|
return test;
|
|
}
|
|
}
|
|
IFile* IFSFolder::NewFile(const String& name, int size)
|
|
{
|
|
IFile* f;
|
|
if(this->GetFile(name, &f) != SC_OK)
|
|
{
|
|
IFSFile* newFile = new IFSFile(this->EntryName + name, size);
|
|
newFile->FileName = name;
|
|
newFile->Provider = this->Provider;
|
|
this->AddFile(newFile);
|
|
return newFile;
|
|
}
|
|
else
|
|
{
|
|
return f;
|
|
}
|
|
}
|
|
} |