VC++ 获取文件属性创建时间、修改时间和访问时间
转载:http://blog.sina.com.cn/s/blog_66bf8d8301014ikd.html
WIN32_FIND_DATA结构
关于文件的全部属性信息,总计有以下以下9 种:文件的标题名、文件的属性(只读、存档,隐藏等)、文件的创建时间、文件的最后访问时间、文件的最后修改时间、文件大小的高位双字、文件大小的低位双字、保留、保留。在这里只有文件标题名和文件的长度可以通过CFile类比较方便的获得,而对于其他几种属性的获取和设置就无能为力了。
在用findfirst()和findnext()函数去查找磁盘文件时经常使用的一个数据结构WIN32_FIND_DATA的成员变量里包含了以上所有的文件属性,因此可以通过这个结构作为获取和更改文件属性的手段。该结构的内容如下:
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;
可以通过FindFirstFile()函数根据当前的文件存放路径查找该文件来把待操作文件的相关属性读取到WIN32_FIND_DATA结构中去:
WIN32_FIND_DATA ffd ;
HANDLE hFind = FindFirstFile("c:\test.dat",&ffd);
在使用这个结构时不能手工修改这个结构中的任何数据,结构对于开发人员来说只能作为一个只读数据,其所有的成员变量都会由系统完成填写。
实例:
//--get the LastWriteTime of folder/files
WIN32_FIND_DATA ffd ;
HANDLE hFind = FindFirstFile(openedSourceDir,&ffd);
SYSTEMTIME stUTC, stLocal;
FileTimeToSystemTime(&(ffd.ftLastWriteTime), &stUTC);
SystemTimeToTzSpecificLocalTime(NULL, &stUTC, &stLocal);
myTime.Format("%d. %d %d, %d:%d", stLocal.wDay,stLocal.wMonth,stLocal.wYear,stLocal.wHour,stLocal.wMinute);
//--
d_ColorStatic.SetWindowText((LPCTSTR)myTime);
2. 获取文件属性创建时间、修改时间和访问时间
转载:http://blog.csdn.net/awu999328/article/details/24470621
1 FILETIME ftCreate, ftModify, ftAccess; 2 CString strCreateTime, strModifyTime, strAccessTime; 3 CString strFilePath = _T(""); 4 5 HANDLE hFile = CreateFile(strFilePath, GENERIC_READ, // open for reading 6 FILE_SHARE_READ, // share for reading 7 NULL, // default security 8 OPEN_EXISTING, // existing file only 9 FILE_FLAG_BACKUP_SEMANTICS , // normal file 10 NULL); 11 12 SYSTEMTIME stLocal; 13 if (!GetFileTime(hFile, &ftCreate, &ftAccess, &ftModify)) 14 { 15 return ; 16 } 17 18 ZeroMemory(&stLocal, sizeof(SYSTEMTIME)); 19 FileTimeToSystemTime(&ftCreate, &stLocal); 20 strCreateTime.Format("%04d-%02d-%02d %02d:%02d:%02d", stLocal.wYear, stLocal.wMonth, stLocal.wDay, stLocal.wHour, stLocal.wMinute, stLocal.wSecond); // 文件创建时间 21 ZeroMemory(&stLocal, sizeof(SYSTEMTIME)); 22 FileTimeToSystemTime(&ftModify, &stLocal); 23 strModifyTime.Format("%04d-%02d-%02d %02d:%02d:%02d", stLocal.wYear, stLocal.wMonth, stLocal.wDay, stLocal.wHour, stLocal.wMinute, stLocal.wSecond); // 文件修改时间 24 ZeroMemory(&stLocal, sizeof(SYSTEMTIME)); 25 FileTimeToSystemTime(&ftAccess, &stLocal); 26 strAccessTime.Format("%04d-%02d-%02d %02d:%02d:%02d", stLocal.wYear, stLocal.wMonth, stLocal.wDay, stLocal.wHour, stLocal.wMinute, stLocal.wSecond); // 文件访问时间
这里的CreateFile只导致文件只能被只读打开,不能有其他权限,最好用FindFile获取创建,修改和访问时间
转载于:https://www.cnblogs.com/chechen/p/5138604.html
VC++ 获取文件属性创建时间、修改时间和访问时间相关推荐
- php 修改文件访问时间,PHP中获取文件创建日期、修改日期、访问时间的方法
php获取文件创建时间.修改时间常用代码filemtime ( string filename ) 返回文件上次被修改的时间,出错时返回 FALSE.时间以 Unix 时间戳的方式返回,可用于 dat ...
- php 修改文件访问时间,PHP获取文件创建日期、修改日期、访问时间
最近由于项目的需求需要对服务器上面的文件做一个时间的记录,接下来吾爱编程就为大家介绍一下PHP获取文件创建日期.修改日期.访问时间的方法,有需要的小伙伴可以参考一下: 1.常用代码: (1).file ...
- 文件里的三个重要时间:access time(访问时间), modify time(修改时间), change time(状态改动时间)
文件里的三个重要时间:access time(访问时间), modify time(修改时间), change time(状态改动时间),下面我将先介绍一下这个时间的修改与查看. touch 命令:t ...
- 1.4 File类(文件操作类)获取文件属性,创建和删除文件\目录,遍历目录
在 Java 中,File 类是 java.io 包中唯一代表磁盘文件本身的对象,也就是说,如果希望在程序中操作文件和目录,则都可以通过 File 类来完成.File 类定义了一些方法来操作文件,如新 ...
- python:批量修改文件的访问时间、修改时间、改变时间!
1.名词解释 访问时间:读取一次文件的内容,该时间便会更新.比如对这个文件使用less命令或者more命令.(ls.stat这样的命令不会修改文件访问时间) 修改时间:对文件内容修改一次便会更新该时间 ...
- 如何修改mysql数据库服务器时间,修改mysql数据库服务器时间格式
修改mysql数据库服务器时间格式 内容精选 换一换 本章节为您介绍使用Maxwell同步工具将线下基于binlog的数据迁移到MRS Kafka集群中的指导.Maxwell是一个开源程序(https ...
- 监控录像日期怎么修改 视频监控录像显示的日期能够修改吗 如何更改监控录像时间 监控录像时间修改 监控录像时间修改器 监控录像能修改时间 监控录像视频时间修改教程 监控录像时间修改软件是什么 监控录像可
监控录像修改合成技术主要通过对多种影像.时间日期文字.语音信息进行融合,对原始录像视频图像进行删除.添加.合成等手段改变原始图像内容. (一)不同的摄像头摄制的图像之间的复制.删减和混合 将几个 ...
- windows修改文件创建时间、修改时间以及最后访问时间
windows修改文件创建时间.修改时间以及最后访问时间 修改文件创建时间 修改文件最后修改时间 修改文件最后访问时间 修改文件创建时间 (ls '文件名').CreationTimeUtc='时间( ...
- linux下文件的创建时间、访问时间、修改时间和改变时间
确切的说不存在创建时间.若文件从创建后不曾修改过则可认为创建时间=修改时间,若文件创建后状态也不曾改变过则可认为创建时间=改变时间,若文件创建后不曾被读取过则可认为创建时间=访问时间.但是,但是,上述 ...
最新文章
- struts2和spring的两种整合方式 action的自动装配
- 深入理解linux内核: linux内核(二)
- python无向加权图_图:无向图(Graph)基本方法及Dijkstra算法的实现 [Python]
- SPOJ SUMPRO(数学)
- 驱动api_消费者驱动契约已死?
- linux audio A2B
- 2 FI配置-企业结构-定义-创建公司代码(Company Code)
- linux下升级zookeeper
- 查看修改oracle数据库字符集
- 关于java中equals与==的区别的小实验
- Ubuntu18 mongodb 离线安装
- 【洛谷 1057】传球游戏
- DPDK框架原理简介 (0002转)
- 完全免费!6个不可错过的图片、视频等资源网站分享,个个都是精品!
- Shell判断字符串是否为空
- (含代码)基于51最小系统的流水灯+焊接制作
- java 弧度 转经纬度_GPS 经纬度转换为 经过旋转后的平面坐标详解
- Origin单独改变一个柱状图的颜色
- linux xdm服务无法关闭,Linux远程操控XDM认识和配置
- Ubunut中安装ROS2 foxy:问题及记录
热门文章
- 单链表建立(头插法,头插法,用数组),求长,插入,删除,输出,释放(递归释放和循环释放),归并(递增和递减)
- 前端三十二:超链接(a标签)
- 前端一HTML:十八:元素的显示方式
- linux系统管理命令,压缩命令
- Python之路--前端知识--JavaScript
- zTree新增的根结点再新增子节点reAsyncChildNodes不生效解决方案
- java IO之 File类+字节流 (输入输出 缓冲流 异常处理)
- Android listview 的应用
- 去除tableview中每个cell的分段线
- 利用钥匙串,在应用里保存用户密码的方法