51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 6855|回复: 14
打印 上一主题 下一主题

[原创] 如何比较文件的生成时间和系统时间差?又有新疑问,等待大侠指教~!

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2008-10-20 21:59:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
如何写个函数,比较某个文件夹下的文件生成时间和系统时间相差不超过一小时?
先谢谢各位大侠了~   ^_^   (问题已解决,见7楼)

新疑问:
我想判断系统时间和文件时间差是否超过一小时
而f.datecreated取回的是一个完整时间,包括日期、时分秒,而且是一个对象
但是系统时间通过date、time取到的是两个字符串
问题1.类型都不一致,如何比较
问题2.怎么样才能让他们相减的单位是小时呢?多谢大侠指教啊~~

[ 本帖最后由 haha_s 于 2008-10-21 14:24 编辑 ]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2008-10-21 02:08:04 | 只看该作者
用kernel32.dll来取文件生成时间lpCreationTime好了,然后和系统时间相减
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2008-10-21 09:40:41 | 只看该作者

楼上的方法复杂点。这个是访问文件夹的,如果要访问文件的,例如text的,方法需要另写
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.GetFolder("C:\xiaoi_log")    '文件夹路径
   S = S & f.DateCreated                          '文件创建时间
   S = S  & f.DateLastAccessed             '文件最后访问时间
   S = S & f.DateLastModified                '文件最后修改时间
msgbox s

然后系统的时间,直接拿data就可以了
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2008-10-21 11:06:40 | 只看该作者
不在的方法不错,受教了
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2008-10-21 11:22:23 | 只看该作者
学习了
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2008-10-21 11:27:35 | 只看该作者
Attributes 属性 |  DateCreated 属性 |DateLastAccessed 属性 | DateLastModified 属性 | Drive 属性 | Files 属性 | IsRootFolder 属性 | Name 属性 | ParentFolder 属性 | Path 属性 | ShortName 属性 | ShortPath 属性 | Size 属性 | SubFolders 属性 | Type 属性

应用于:File 对象 | Folder 对象

有这可以用的,就不用调Dll来做了,简单方便啊
回复 支持 反对

使用道具 举报

该用户从未签到

7#
 楼主| 发表于 2008-10-21 13:45:59 | 只看该作者
不在大侠的方法果真灵验,多谢呵呵
问题解决,代码如下:
Dim fso, f,ShowFileInfo
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set f = fso.GetFile("D:\StarTeam\ff.bmp")
   ShowFileInfo = "Created: " & f.DateCreated
   msgbox ShowFileInfo

但是又有一个疑问,我想判断系统时间和文件时间差是否超过一小时
而f.datecreated取回的是一个完整时间,包括日期、时分秒
但是系统时间通过date、time取到的是两个字符串
怎么样才能让他们相减的单位是小时呢?多谢大侠指教啊~~

[ 本帖最后由 haha_s 于 2008-10-21 14:11 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

8#
发表于 2008-10-21 16:50:41 | 只看该作者
转换为时间格式,然后和now相减再乘以24就行了
回复 支持 反对

使用道具 举报

该用户从未签到

9#
发表于 2008-10-21 17:18:12 | 只看该作者

你发信息给我,就帮你回复下吧。
Dim fso, f,ShowFileInfo
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set f = fso.GetFile("D:\StarTeam\ff.bmp")
   ShowFileInfo =  f.DateCreated    '这里如果有其它字符,会导致出错,在使用hour转换的时候
   The_Hour=Hour(ShowFileInfo )
if  The_Hour-Hour(now)>1 then
  msgbox "超过一个小时"
else
  msgbox "没超过一个小时"
end if
回复 支持 反对

使用道具 举报

该用户从未签到

10#
 楼主| 发表于 2008-10-21 18:35:17 | 只看该作者
多谢楼上的不在TX哈
问题解决!
回复 支持 反对

使用道具 举报

该用户从未签到

11#
发表于 2008-10-21 20:03:42 | 只看该作者
解决就好,来朵花先 ,好久没人送花了。
回复 支持 反对

使用道具 举报

该用户从未签到

12#
发表于 2008-10-22 10:34:06 | 只看该作者
屁股 我来给你送花
回复 支持 反对

使用道具 举报

该用户从未签到

13#
发表于 2008-10-22 11:06:48 | 只看该作者
原帖由 fwlikexbx 于 2008-10-22 10:34 发表
屁股 我来给你送花


为什么
回复 支持 反对

使用道具 举报

该用户从未签到

14#
发表于 2008-10-22 13:12:09 | 只看该作者

支持
回复 支持 反对

使用道具 举报

该用户从未签到

15#
发表于 2008-10-30 14:48:46 | 只看该作者
牛人呀
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-9-21 05:41 , Processed in 0.074857 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表