enum Attribute { normal, readOnly, hidden, system, volume, directory, archive }; |
HANDLE FindFirstFile( LPCTSTR lpFileName, //文件或文件夹路经r LPWIN32_FIND_DATA lpFindFileData ); BOOL FindNextFile( HANDLE hFindFile, LPWIN32_FIND_DATA lpFindFileData ); BOOL FindClose(HANDLE hFindFile ); |
typedef struct _WIN32_FIND_DATA { DWORD dwFileAttributes; //文件属性 FILETIME ftCreationTime; // 文件创建时间 FILETIME ftLastAccessTime; // 文件最后一次访问时间 FILETIME ftLastWriteTime; // 文件最后一次修改时间 DWORD nFileSizeHigh; // 文件长度高32位 DWORD nFileSizeLow; // 文件长度低32位 DWORD dwReserved0; // 系统保留 DWORD dwReserved1; // 系统保留 TCHAR cFileName[ MAX_PATH ]; // 长文件名 TCHAR cAlternateFileName[ 14 ]; // 8.3格式文件名 } WIN32_FIND_DATA, *PWIN32_FIND_DATA; |
BOOL GetFileInformationByHandle( HANDLE hFile, // 文件的句柄 LPBY_HANDLE_FILE_INFORMATION lpFileInformation ); |
typedef struct _BY_HANDLE_FILE_INFORMATION { DWORD dwFileAttributes; FILETIME ftCreationTime; FILETIME ftLastAccessTime; FILETIME ftLastWriteTime; DWORD dwVolumeSerialNumber; // 文件所在的磁盘的序列号 DWORD nFileSizeHigh; DWORD nFileSizeLow; DWORD nNumberOfLinks; //链接的数目 DWORD nFileIndexHigh; DWORD nFileIndexLow; } BY_HANDLE_FILE_INFORMATION; |
HANDLE handle; WIN32_FIND_DATA find_data; handle = :: FindFirstFile("D:\\VSS",&find_data); FindClose(handle); find_data.dwFileAttributes = find_data.dwFileAttributes|FILE_ATTRIBUTE_READONLY; ::SetFileAttributes("D:\\VSS",find_data.dwFileAttributes); |
在上面的介绍中,除了可以设置文件的属性之外,在操作的过程当中也可以取得文件的其他一些信息,可以根据具体的需要来实现。
5.获取文件名,文件类型,文件长度,文件路径
用利用CFile打开一个文件时,可以在利用成员函数
virtual CString GetFileName( ) const, virtual CString GetFileTitle( ) const, virtual CString GetFilePath( ) const, virtual DWORD GetLength( ) const;throw( CFileException ); |