龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > VC开发 >

解读VC++编程中的文件操作API和CFile类(6)

时间:2009-12-30 15:42来源:未知 作者:admin 点击:
分享到:
下面就举一个例子来实现: CFileStatus status; char *path = "D:VSS"; if(CFile::GetStatus( path, status )) { CString cTime,mTime,aTime; cTime = status.m_ctime.Format("文件建立时间:%Y年

  下面就举一个例子来实现:

CFileStatus status;
char *path = "D:VSS";
if(CFile::GetStatus( path, status ))
{
 CString cTime,mTime,aTime;
 cTime = status.m_ctime.Format("文件建立时间:%Y年%m月%d日 %H时%M分%S秒");
 mTime = status.m_mtime.Format("文件最近修改时间:%Y年%m月%d日 %H时%M分%S秒");
 aTime = status.m_atime.Format("文件最近访问时间:%Y年%m月%d日 %H时%M分%S秒");
 CString str;
 str = cTime + " " + mTime +" " + aTime ;
 MessageBox(str);

}

  4.取得和设置文件的属性

DWORD GetFileAttributes(
 LPCTSTR lpFileName //文件或文件夹路经
);
BOOL SetFileAttributes(
 LPCTSTR lpFileName, // 文件名
 DWORD dwFileAttributes // 要设置的属性
);

  取得的文件属性包括:FILE_ATTRIBUTE_ARCHIVE,FILE_ATTRIBUTE_HIDDEN,FILE_ATTRIBUTE_NORMAL,FILE_ATTRIBUTE_OFFLINE,FILE_ATTRIBUTE_READONLY,FILE_ATTRIBUTE_SYSTEM,FILE_ATTRIBUTE_TEMPORARY

  不能设置的文件属性包括有:FILE_ATTRIBUTE_COMPRESSED,FILE_ATTRIBUTE_DIRECTORY,FILE_ATTRIBUTE_ENCRYPTED,FILE_ATTRIBUTE_REPARSE_POINT,FILE_ATTRIBUTE_SPARSE_FILE,FILE_ATTRIBUTE_SYSTEM。

  CFileStatus中也定义了一组属性:

enum Attribute {
 normal,
 readOnly,
 hidden,
 system,
 volume,
 directory,
 archive
};

  可以通过if((status. m_attribute& readOnly) = =FILE_ATTRIBUTE_READONLY)来判断,这里利用另外的API来实现获得文件的详细信息:

HANDLE FindFirstFile(
 LPCTSTR lpFileName, //文件或文件夹路经r
 LPWIN32_FIND_DATA lpFindFileData
);
BOOL FindNextFile(
 HANDLE hFindFile,
 LPWIN32_FIND_DATA lpFindFileData
);
BOOL FindClose(HANDLE hFindFile );

精彩图集

赞助商链接