Files
Leviathan/Library/Internal/include/kfile/KRealFileSystem.h
T
2026-06-01 12:46:52 +02:00

52 lines
1.5 KiB
C++

/**
@file KRealFileSystem.h
@brief 게임용으로 특화된 FS
*/
#pragma once
#include "IFileSystem.h"
#include <string>
#include "../toolkit/khash.h"
struct KRealFileSystem : KFileSystem
{
KRealFileSystem();
virtual ~KRealFileSystem();
bool Init( const char *szRootPath/*, NameCipher *pNameCipher*/ );
bool DeInit();
virtual KStream* open( const char* szFileName, ACCESS_MODE access_mode );
virtual std::string getFullPathName( const char* szFileName ) const;
virtual void doEachFile( FileHandler & handler ) {}
virtual bool isFile( const char *szFileName ) const;
virtual size_t getFileSize( const char *szFileName ) const;
virtual std::string getCurDirectory() const { return ""; }
virtual bool changeDirectory( const char *szDirectory ) { return false; }
virtual bool makeDirectory( const char *szDirectory ) { return false; }
virtual bool deleteDirectory( const char *szDirectory ) { return false; }
virtual bool deleteFile( const char *szFile ) { return false; }
private:
KHash< std::string, hashPr_string_nocase > m_hsIndex;
std::string m_strBaseDirectory;
//NameCipher *m_pNameCipher;
};
struct KStdioFileSystem : KRealFileSystem
{
virtual KStream* open( const char* szFileName, ACCESS_MODE access_mode );
virtual std::string getFullPathName( const char* szFileName ) const;
virtual bool isFile( const char *szFileName ) const;
virtual size_t getFileSize( const char *szFileName ) const;
};