首页 > 代码库 > MFC类学习CDiskObject 检测文件存在等

MFC类学习CDiskObject 检测文件存在等

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( )  析构函数
 
 

MFC类学习CDiskObject 检测文件存在等