免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
1234
最近访问板块 发新帖
楼主: 小雨飞
打印 上一主题 下一主题

在C中如何获取一个文件的生成时间 [复制链接]

论坛徽章:
0
31 [报告]
发表于 2006-08-11 21:24 |只看该作者
这是一个API而非语言的问题。

DOS下(TC2.0)可以用findfirst()函数,它有参数time和date,但这是修改时间,不是创建时间。

而至于Windows环境,以下信息供参考:
1:在VC++下对文件属性的获取与更改(http://www.yesky.com/20020904/1628566.shtml
(WIN32_FIND_DATA结构,FindFirstFile()函数)
2:GetFileTime()以及FILETIME结构。

关键在于文件系统是不是提供保存文件创建时间的机制。
NTFS应该是有的,FAT16好像没有,ext分区就不知道了。
还要搞清楚这个“创建时间”究竟是如何定义的,用它编程才有意义。比如,在Windows下跨分区拷贝文件时,文件的“创建时间”属性会被改为你拷贝它的时间,这样就会造成“创建时间”比“修改时间”还往后这样看起来很奇怪的事情。

论坛徽章:
0
32 [报告]
发表于 2006-08-11 23:10 |只看该作者
All the major file system on Linux don't support the concept of "create time"  (ext3/reiserfs/xfs). But for a specific application, you can use dnotify( before kernel 2.6.16) or inotify( kernel 2.6.16 and later) to monitor the directory for file creating and record the time in the database

论坛徽章:
0
33 [报告]
发表于 2006-08-12 16:51 |只看该作者

~~~~~

FB 已经支持文件创建时间了,好象NB也是这样. OB不知道.

论坛徽章:
0
34 [报告]
发表于 2006-08-15 11:51 |只看该作者
各位老大,我不懂C,不过我觉得你们可以从系统里创建文件入手找解决办法,比如:


执行 time  mkfile   100m     filename

这个命令就能统计出产生100M文件所需的时间。

论坛徽章:
0
35 [报告]
发表于 2006-08-15 13:41 |只看该作者
LZ要做什么,  也许你说明白了要creat time的目的, 大家可能会想出别的办法来扰过目前不能解决的问题.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP