67 lines
2.6 KiB
C++
67 lines
2.6 KiB
C++
#ifndef _FDOP_H_
|
||
#define _FDOP_H_
|
||
|
||
/************************************************************************
|
||
*
|
||
* 常用文件与目录操作函数库
|
||
*
|
||
************************************************************************/
|
||
|
||
namespace FDOP
|
||
{
|
||
/* 判断文件或目录是否存在
|
||
* 在操作系统中,目录也是一个文件,如果要判断一个目录是否存在则应当使用DirectoryExists,
|
||
* 要判断一个文件是否存在且是一个归档文件则应当使用IsArchive。
|
||
* @如果文件或目录存在则返回true否则返回false
|
||
* %文件路径字符长度不得超过MAX_PATH
|
||
*/
|
||
bool FileExists(const char* sFilePath);
|
||
|
||
/* 逐层创建目录
|
||
* 如果创建目录C:\a\b\c\d,最终目录的父目录不存在则逐级创建父目录并创建最终目录
|
||
* @如果目录完全创建成功则函数返回true,否则返回false。
|
||
* %如果在创建某个父目录成功后并创建子目录失败,则函数返回false且已经创建的父目录不会被删除。
|
||
* %目录路径的总体字符长度,函数要求必须在MAX_PATH个字符长度以内
|
||
*/
|
||
bool DeepCreateDirectory(const char* sDirPath);
|
||
|
||
|
||
/* 获取文件所在目录路径
|
||
* c:\abc\efg\123.txt --> c:\abc\efg\
|
||
* c:\abc\efg\ --> c:\abc\
|
||
* 参数sDirBuf用于存储目录字符串
|
||
* 参数dwBufLen为sDirName参数的缓冲区字符(非字节)长度,其中含需要保留的终止字符,
|
||
如果dwBufLen值为0则函数不会将目录路径拷贝到sDirBuf中;
|
||
如果dwBufLen值非0则函数会将目录路径拷贝到sDirBuf中并会在sDirBuf中写入终止符;
|
||
如果缓冲区不够则只拷贝dwBufLen-1个字符并会在sDirBuf中写入终止符。
|
||
@函数返回拷贝目录路径所需的字符长度(含终止符)
|
||
*/
|
||
size_t ExtractFileDirectory(const char* sFilePath, char* sDirBuf, size_t dwBufLen);
|
||
|
||
/* 获取顶层目录名称
|
||
* (abc\efg\ --> abc)
|
||
* 参数ppChildDirPath用于存顶层目录之后的目录路径,参数可以为空
|
||
* 参数sDirName用于存储目录字符串
|
||
* 参数dwBufLen为sDirName参数的缓冲区字符(非字节)长度,其中含需要保留的终止字符,
|
||
如果dwBufLen值为0则函数不会将目录名拷贝到sDirName中;
|
||
如果dwBufLen值非0则函数会将目录名拷贝到sDirName中并会在sDirName中写入终止符;
|
||
如果缓冲区不够则只拷贝dwBufLen-1个字符并会在sDirName中写入终止符。
|
||
@函数返回拷贝目录名所需的字符长度(含终止符)
|
||
*/
|
||
size_t ExtractTopDirectoryName(const char* sDirPath, const char* *ppChildDirPath, char* sDirName, size_t dwBufLen);
|
||
|
||
/* 获取文件或目录名称
|
||
* c:\abc\123.txt --> 123.txt
|
||
* c:\abc\efg\ --> efg
|
||
* 参数sDirBuf用于存储文件名称字符串
|
||
* 参数dwBufLen为sNameBuf参数的缓冲区字符(非字节)长度,其中含需要保留的终止字符,
|
||
如果dwBufLen值为0则函数不会将文件名拷贝到sNameBuf中;
|
||
如果dwBufLen值非0则函数会将文件名拷贝到sNameBuf中并会在sNameBuf中写入终止符;
|
||
如果缓冲区不够则只拷贝dwBufLen-1个字符并会在sNameBuf中写入终止符。
|
||
@函数返回拷贝文件名所需的字符长度(含终止符)
|
||
*/
|
||
size_t ExtractFileName(const char* sFilePath, char* sNameBuf, size_t dwBufLen);
|
||
}
|
||
|
||
#endif
|