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

本文介绍了一个名为CDiskObject的类,用于简化常见的文件和目录操作任务,如复制、移动、删除文件及目录等,并提供了丰富的函数来枚举目录内容、检查文件或目录的存在状态。

http://www.codeproject.com/Articles/6415/CDiskObject-Simplifying-common-disk-operations

作者:Johan Rosengren11 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( )  析构函数
 
 

转载于:https://www.cnblogs.com/vipwtl/p/6091483.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值