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


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

    作者: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( )  析构函数
     
     
  • 相关阅读:
    庆祝一下开通了第一条博客!
    查看树莓派温度
    Ubuntu Server for Raspberry Pi部署Jenkins
    acme.sh部署RSA、ECC双证书(使用阿里云API)
    Ubuntu Server 20.04换用阿里源
    ESP32使用NTP同步时间
    C语言的可变参数函数
    一种Θ(1)的计算32位整数二进制中1的个数的方法
    CentOS 8安装Docker
    CentOS 8搭建LNMP + WordPress(三)
  • 原文地址:https://www.cnblogs.com/vipwtl/p/6091483.html
Copyright © 2020-2023  润新知