| 网管联盟 | 网管论坛 | 网管u家 | 网管博客 | 网管软件 | 网管求职 | 小游戏 | 网管搜索 | 网管原创 | 网管聚合 | 网管读摘 | 网管焦点 | 世界素材 | 会员投稿 | 会员中心 |
![]() |
| Windows Linux Cisco 网络技术 数据库 黑客攻防 DotNet Java PHP 认证 新闻资讯 服务器 存储资讯 网络设备 网管学堂 技术专题 焦点 网吧频道 |
简单示例
下面根据前面的讲述而给出一个简单的应用示例,通过此示例可以从指定的文件夹读取时间属性信息并可在经过修改后再回写进去(在此仅对最近修改时间进行处理,对于其他的时间属性可用类似的方法加以实现)。这里通过两个函数GetDirTime()和SetDirTime()来实现对文件夹时间信息的获取与更改处理,下面就以注释的形式对这两个函数的实现过程进行讲解:
| // 获取指定文件夹的时间属性,入口参数DirName指定了待处理的文件夹,stime为一 // 指向SYSTEMTIME结构的指针 BOOL CSetForderTimeDlg::GetDirTime(CString DirName, SYSTEMTIME &stime){ // 打开文件夹 HANDLE hDir = CreateFile (DirName, GENERIC_READ, FILE_SHARE_READ|FILE_SHARE_DELETE, NULL, OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, NULL); FILETIME lpCreationTime; // 文件夹的创建时间 FILETIME lpLastAccessTime; // 对文件夹的最近访问时间 FILETIME lpLastWriteTime; // 文件夹的最近修改时间 网管网www_bitscn_com // 获取文件夹时间属性信息 if (GetFileTime(hDir, &lpCreationTime, &lpLastAccessTime, &lpLastWriteTime)){ FILETIME ftime; FileTimeToLocalFileTime(&lpLastWriteTime, &ftime); // 转换成本地时间 FileTimeToSystemTime(&ftime, &stime); // 转换成系统时间格式 } CloseHandle(hDir); // 关闭打开过的文件夹 return retval; } |
网管朋友网www_bitscn_net
| // 设置指定文件夹的时间属性,入口参数DirName指定了待处理的文件夹,new_time // 为一指向SYSTEMTIME结构的指针 BOOL CSetForderTimeDlg::SetDirTime(CString DirName, SYSTEMTIME new_stime){ // 打开目录的Win32 API调用 HANDLE hDir = CreateFile(DirName, GENERIC_READ|GENERIC_WRITE, FILE_SHARE_READ|FILE_SHARE_DELETE, NULL, OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, NULL); FILETIME lpCreationTime; // 文件夹的创建时间 FILETIME lpLastAccessTime; // 对文件夹的最近访问时间 FILETIME lpLastWriteTime; // 对文件夹的最近修改时间 SystemTimeToFileTime(&new_stime, &lpCreationTime); // 转换成文件时间格式 SystemTimeToFileTime(&new_stime, &lpLastAccessTime); SystemTimeToFileTime(&new_stime, &lpLastWriteTime); // 设置文件夹的时间属性 BOOL retval = SetFileTime(hDir, &lpCreationTime, &lpLastAccessTime,&lpLastWriteTime);CloseHandle(hDir); 网管u家u.bitscn@com // 关闭文件夹 return retval; } |
至此,可以很方便的通过调用GetDirTime()和SetDirTime()函数来实现对任意指定文件夹时间属性的获取与设置,具体为: 网管网www.bitscn.com
SYSTEMTIME stime; // 系统时间结构对象 if (GetDirTime(m_Path, stime)) { // 如果获取文件夹时间属性成功,获取到的时间信息将保存在stime结构对象中 …… // 如果需要可以对获取到的时间属性进行修改,也可以保留不变 …… // 将修改后的时间属性回写到文件夹 SetDirTime(m_Path, stime); }
小结
网管u家www.bitscn.net
本文通过CreateFile()函数打开文件夹,并在以后的处理中将其以文件来对待,从而可以使用GetFileTime()、SetFileTime()等函数来对其时间属性进行获取与写入处理,可对包括根目录在内的任意文件夹进行时间属性设置。在数据的完整备份与复原等方面中有较好的应用前景。本文所述代码在Windows 2000 Professional下,由Microsoft Visual C++ 6.0编译通过。 网管有家www.bitscn.net
网管联盟bitsCN_com
网管联盟bitsCN@com|
0
|
评论加载中…