123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- #pragma once
- // file time
- struct file_time_t
- {
- int nyear;
- int nmonth;
- int nday;
- int nhour;
- int nminute;
- int nsecond;
- };
- class IFileSystem
- {
- public:
- virtual ~IFileSystem();
- // @brief 转换目录路径
- virtual const char* get_standard_path(const char* path, char* buffer, size_t size) = 0;
- // @brief 转换目录路径为完整路径
- virtual int get_full_pathname(const char* file_name, char* buffer, size_t size, char** file_part) = 0;
- // @brief 获得当前目录
- virtual bool get_current_dir(char* buffer, size_t size) = 0;
- // @brief 设置当前目录
- virtual bool set_current_dir(const char* path) = 0;
- // @brief 目录是否存在
- virtual bool dir_exists(const char* name) = 0;
- // @brief 创建目录
- virtual bool dir_create(const char* name) = 0;
- // @brief 删除目录
- virtual bool dir_delete(const char* name) = 0;
- // @brief 文件是否存在
- virtual bool file_exists(const char* name) = 0;
- // @brief 打开文件
- virtual void* file_open(const char* name, const char* mode) = 0;
- // @brief 删除文件
- virtual bool file_delete(const char* name) = 0;
- // @brief 关闭文件
- virtual bool file_close(void* fp) = 0;
- // @brief 获得文件大小
- virtual size_t get_file_size(const char* name) = 0;
- // @brief 获得文件日期
- virtual bool get_file_time(const char* name, file_time_t* file_time) = 0;
- // @brief 设置文件日期
- virtual bool set_file_time(const char* file_name, const file_time_t* file_time) = 0;
- // @brief 读取文件
- virtual size_t file_read(void* buf, size_t buf_len, void* fp) = 0;
- // @brief 写入文件
- virtual size_t file_write(const void* buf, size_t buf_len, void* fp) = 0;
- // @brief 刷新文件
- virtual int file_flush(void* fp) = 0;
- // @brief 是否文件结尾
- virtual bool file_eof(void* fp) = 0;
- // @brief 读取文件到缓冲区中
- virtual size_t file_readstring(const char* name, char* buffer, size_t buf_len) = 0;
- // @brief 加载dll
- virtual void* dll_open(const char* file_name) = 0;
- // @brief 获得加载dll的错误信息
- virtual const char* dll_error(char* buffer, size_t size) = 0;
- // @brief 获得加载dll的错误信息
- virtual const char* dll_name(const char* file_name, char* buffer, size_t size) = 0;
- // @brief 获得dll中的函数
- virtual void* dll_symbol(void* handle, const char* name) = 0;
- // @brief 关闭dll
- virtual bool dll_close(void* handle) = 0;
- // @brief 创建一个查询用的结构体
- virtual void* find_open() = 0;
- // @brief 查找文件
- virtual bool find_first(void* file_search, const char* path, const char* name) = 0;
- // @brief 查找文件
- virtual bool find_next(void* file_search) = 0;
- // @brief 查找文件
- virtual bool find_close(void* file_search) = 0;
- // @brief 是否目录
- virtual bool find_is_dir(void* file_search) = 0;
- // @brief 是否文件
- virtual bool find_is_file(void* file_search) = 0;
- // @brief 是否文件
- virtual const char* find_get_name(void* file_search) = 0;
- };
- inline IFileSystem::~IFileSystem() {}
|