http://www.codeproject.com/Articles/6415/CDiskObject-Simplifying-common-disk-operations
作者:Johan Rosengren, 11 Oct 2006
常规的一些文件操作
函数学习:
public:
// ctor(s)
CDiskObject();
CDiskObject( CWnd* feedbackWindow );
// dtor
~CDiskObject();
// - - -
// Operations
// Files
BOOL FileExists( const CString& file );
BOOL FileInformation( const CString& file, BY_HANDLE_FILE_INFORMATION &file_info);
BOOL CreateFile( const CString& file );
BOOL CopyFile( const CString& sourceFile, const CString& destDirectory );
BOOL CopyFile( const CString& sourceFile, const CString& destDirectory, const CString& destFile );
BOOL RemoveFile( const CString& sourceFile );
BOOL RenameFile( const CString& sourceFile, const CString& destFile );
BOOL MoveFile( const CString& sourceFile, const CString& destFile );
BOOL CopyFiles( const CString& sourceDirectory, const CString& destDirectory );
BOOL CopyFiles( CStringArray& files, const CString& destDirectory );
// Directories
BOOL DirectoryExists( const CString& file );
BOOL CreateDirectory( const CString& directory );
BOOL CopyDirectory( const CString& sourceDirectory, const CString& destDirectory );
BOOL EmptyDirectory( const CString& directory );
BOOL RemoveDirectory( const CString& directory );
BOOL CopyDirectories( const CString& sourceDirectory, const CString& destDirectory );
BOOL EmptyDirectories( const CString& directory );
BOOL RemoveDirectories( const CString& directory );
BOOL EnumFilesInDirectoryWithFilter( const CString& filter, const CString& sourceDirectory, CStringArray& files, int mode = EF_ONLY_FILENAMES );
BOOL EnumAllDirectories( const CString& sourceDirectory, CStringArray& directories, int mode = EF_FULLY_QUALIFIED );
BOOL EnumDirectories( const CString& sourceDirectory, CStringArray& directories, int mode = EF_ONLY_FILENAMES );
BOOL EnumFilesInDirectory( const CString& sourceDirectory, CStringArray& files, int mode = EF_ONLY_FILENAMES );
BOOL EnumAllFiles( const CString& sourceDirectory, CStringArray& files, int mode = EF_FULLY_QUALIFIED );
BOOL EnumAllFilesWithFilter( const CString& filter, const CString& sourceDirectory, CStringArray& files, int mode = EF_FULLY_QUALIFIED );
BOOL RenameDirectory( const CString& oldDirectory, const CString& newName );
BOOL MoveDirectory( const CString& oldDirectory, const CString& newDirectory );
// Error handling
CString GetErrorMessage();
private:
// Error handling
CString m_errorMessage;
void ClearError();
void SetInternalErrorMessage();
void SetSystemErrorMessage( int error, const CString& elements = _T( "" ) );
BOOL EnumAllDirs( const CString& sourceDirectory, CStringArray& directories );
BOOL EnumAllFilesWF( const CString& filter,const CString& sourceDirectory, CStringArray& files );
// Helpers
CWnd* m_feedbackWindow;
BOOL QualifyPath( CString& str );
BOOL QualifyFile( CString& str );
CString GetFileName( const CString& str );
CString GetDirectoryName( const CString& str );
BOOL TestPart( const CString& str );
CDiskObject( CWnd* feedbackWindow ) 构造函数
CDiskObject() 构造函数
void ClearError( ) 清除内部错误信息
BOOL CopyDirectories( const CString& sourceDirectory,const CString& destDirectory ) 将所有的文件和子目录从源地址拷到目的地址
BOOL CopyDirectory( const CString& sourceDirectory,const CString& destDirectory ) 将所有的文件从源地址拷到目的地址,不拷贝子目录
BOOL CopyFile( const CString& sourceFile,const CString& destDirectory ) 将文件从源地址拷到目的地址
BOOL CopyFile( const CString& sourceFile,const CString& destDirectory, const CString& destFile ) 将文件从源地址拷到目的地址(使用新名字)
BOOL CopyFiles( CStringArray& files,const CString& destDirectory ) 将CStringArray中的文件从源地址拷到目的地址
BOOL CopyFiles( const CString& sourceDirectory,const CString& destDirectory ) 将所有的文件从源地址拷到目的地址,不拷贝子目录
BOOL CreateDirectory( const CString& directory ) 递归的创建目录
BOOL CreateFile( const CString& file ) 递归的创建文件,如果有必要,也会创建文件夹
BOOL DirectoryExists( const CString& directory ) 判断文件夹是否存在,存在返回TRUE
BOOL EmptyDirectories( const CString& directory ) 删除目录中所有文件,包括子目录中的文件
BOOL EmptyDirectory( const CString& directory ) 删除目录中的文件
BOOL EnumAllDirectories( const CString& sourceDirectory, CStringArray& directories ) 将所有的目录位置枚举出来,加到CStringArray中(绝对地址)
BOOL EnumAllFiles( const CString& sourceDirectory, CStringArray& files ) 将所有的文件枚举出来
BOOL EnumAllFilesWithFilter( const CString& filter,const CString& sourceDirectory, CStringArray& files ) 枚举出所有符合过滤器的文件名
BOOL EnumDirectories( const CString& sourceDirectory, CStringArray& directories ) 枚举所有目录
BOOL EnumFilesInDirectory( const CString& sourceDirectory, CStringArray& files, int mode ) 枚举所有目录,不包括子目录
BOOL EnumFilesInDirectoryWithFilter( const CString& strFilter,const CString& sourceDirectory, CStringArray& files, int mode ) 枚举满足过滤器的所有文件
BOOL FileExists( const CString& file ) 文件是否存在,如果存在,返回TRUE
BOOL FileInformation( const CString& file, BY_HANDLE_FILE_INFORMATION &file_info ) 满足过滤器的文件是否存在
CString GetDirectoryName( const CString& str ) 返回和参数有相同部分的目录名
CString GetErrorMessage( ) 返回当前错误信息
CString GetFileName( const CString& str ) 返回和参数有相同部分的文件名
BOOL MoveFile( const CString& sourceFile, const CString& destFile ) 将文件从源地址拷贝到目的地址
void QualifyFile( CString& str ) 产生文件绝对地址
void QualifyPath( CString& str ) 产生文件绝对地址
BOOL RemoveDirectories( const CString& directory ) 将该目录删除,如果该目录不空,还要删除其子目录
BOOL RemoveDirectory( const CString& directory ) 将该目录删除,如果该目录不空,不会删除其子目录
BOOL RemoveFile( const CString& sourceFile ) 删除文件
BOOL RenameFile( const CString& sourceFile, const CString& destFile ) 重命名文件
void SetInternalErrorMessage( ) 将错误信息置为内部错误信息
void SetSystemErrorMessage( int error,const CString& elements) 不太懂
~CDiskObject( ) 析构函数