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

时间: 2024-11-03 05:20:11

MFC类学习CDiskObject 检测文件存在等的相关文章

【MFC】MFC技巧学习 当做字典来查

MFC技巧学习 摘自:http://www.cnblogs.com/leven20061001/archive/2012/10/17/2728023.html 1."属性页的添加:创建对话框的类,该类要从CpropertyPage继承: 然后在要添加该对话框为属性页的类(头文件)里创建CpropertySheet类的一个对象m_tabsheet和新创建的对话框类的对象m_skatch: 最后,在.cpp文件里的OnInitDialog()之类的函数里实现如下代码: { m_tabsheet.Cr

MFC程序加载DLL文件时运行到Loadlibray()语句就无法继续下去

我在学习Detour时,为了进行测试,就建立了一个DLL文件和一个MFC工程. 但是我的MFC程序加载DLL文件时运行到Loadlibray("XXX.dll")这条语句就无法继续下去,没有报错,VS2010也没有停止,还是处于编译运行状态. 可是我之前加载的别的DLL文件都可以运行,这应该是很简单的加载DLL文件的过程呀,就想是dll文件的代码错误?或是MFC工程错误?还是Dll工程错误? 于是 我就将dll内的代码 复制到原来可以运行的DLL文件中发现可以运行,那就是代码没错, 接

MFC vs2012 Office2013 读写excel文件

近期在忙一个小项目(和同学一起搞的),在这里客户要求不但读写txt,而且可以读写excel文件,这里本以为很简单,结果...废话少说,过程如下: 笔者环境:win7 64+VS2012+Office2013+MFC. 说明:读写excel文件,通常包括1.ODBC数据库实现;2.通过解析Excel表格文件;3.通过OLE/COM的几种实现方法.本文主要研究通过OLE/COM实现对Excel表格的操作. 步骤: 1.新建MFC对话框.注意勾选自动化,否则后面加入不了需要的库,导致启动服务失败等错误

【C++】Stack类与Queue类学习

1.Stack类学习 1)建立stack<string> 2)调用push函数将数据压入栈中 3)调用size函数查看当前栈内元素数量 4)调用empty函数检测栈是否为空 5)如果不为空则不断调用pop函数将元素从栈中取出(后入先出) #include <iostream> #include <stack> using namespace std; int main() {     stack<string> stkNameList;     stkNam

javascript学习------浏览器检测

Navigator对象:浏览器对象 该对象包含了浏览器的整体信息 Navigator对象的属性: appName:返回浏览器的名称 appVersion:返回浏览器的版本号 uerAgent:返回浏览器用于HTTP请求的用户代理头的值 appCodeName:返回浏览器的代码号 platform:返回运行浏览器的操作系统或硬件平台 IE中的Navigator属性: cookieEnabled:检测浏览器是否支持Cookie,如果支持返回TRUE,不支持返回FALSE systemLanguage

python学习笔记九——文件与目录

1.python进行文件读写的函数是open或file类 mode:r  只读 r+   读写 w  写入,先删除原文件,再重新写入,如果文件没有则创建 w+  读写,先删除原文件,再重新写入,如果文件没有则创建(可写入和输出) a  写入,在文件末尾追加新的内容,文件不存在则创建 a+  读写,在文件末尾追加新的内容,文件不存在则创建 b  打开二进制文件,可与r,w,a,+结合使用 U  支持所有的换行符号,"\r","\n","\r\n"

学习笔记_springmvc文件上传和拦截器

文件上传 用到这两个包 配置视图解析器:springmvc配置文件配置 <!-- id必须要是"multipartResolver" --> <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <!-- maxUploadSize文件上传的最大值,单位是byte

SpringMVC:学习笔记(8)——文件上传

SpringMVC--文件上传 说明: 文件上传的途径 文件上传主要有两种方式: 1.使用Apache Commons FileUpload元件. 2.利用Servlet3.0及其更高版本的内置支持. 客户端编程 1.为了上传文件,必须将HTML表格的enctype属性值设为multipart/form-data,像下面这样: <form action="action" enctype="multipart/form-data" method="po

JavaSE入门学习45:文件传输基础之I/O流(四)

五字符流的使用 (1)编码问题 这个问题我们早就说过了,不再过多赘述. 参考:JavaSE入门学习42:文件传输基础之I/O流(一) (2)认识文本和文本文件 Java的文本(char)是16位无符号整数,是字符的unicode编码(双字节编码):而文件是byte byte byte ...的数据 :文本文件是文本(char)序列按照某种编码方案(utf-8,utf-16be,gbk等)序列化为byte的存储结果. (3)字符流(Reader Writer)---->操作的是文本文本文件 字符的