图片缩略图

FileTime

版本1.6.0.0 (16.5 KB) 1月
获取并设置文件或文件夹的创建、访问和修改时间(仅限Windows)
4.9
10评级

15下载

更新6月29日

查看版本历史

查看许可协议

这些mexo函数可以获取和设置Windows下文件的创建、访问和写入时间。

SetFileTime(文件名,规格,DateVector,类型)
FileName:文件或文件夹名称,绝对路径或相对路径。
接受Unicode名称和UNC路径。
规格:字符串,'创建','访问','写入'。
DateVector: [1 x 6] double vector(参见DATEVEC)或UINT64。
Type:可选,本地时间到UTC时间的转换方法。

Time = GetFileTime(文件名,类型,OutType)
FileName:文件或文件夹名称,绝对路径或相对路径。
类型:可选,UTC到本地时间的转换方法。
OutType:可选,三次都作为struct或单个时间。
时间:结构与字段“创建”,“访问”,“写”或
一次,[1x6] DATEVEC或UINT64格式。

本地<->UTC转换需要Windows XP、Windows Server 2003或更高版本。Matlab附带的LCC 2.4编译器不知道“新的”时间函数。

预编译的mex文件可从以下网址下载:
http://www.n-simon.de/mex

测试:Matlab 6.5/2009a, WinXP, 32位,OWC1.8, BCC5.5, LCC 3.8, MSVC 2008
假设兼容64位Windows。

引用作为

1月(2021)。FileTime(//www.tatmou.com/matlabcentral/fileexchange/24671-filetime), MATLAB中央文件交换。检索

意见及评分(28

1月

@Zihan:秒后我没有看到数字。你是指小数秒吗?

Zihan

Zihan

嗨,简。这个函数非常有用。但是,我有一个问题:在输出时间中,第二后面的数字是什么意思?

1月

@V R:没错。这个提交只能在Windows下工作,如上面的帮助部分和描述所述。

V R

在macOS中编译C代码会出现错误

冈萨洛·勒纳

工作完美(Windows 10 64位,Matlab R2018a)!谢谢你!

1月

预编译的文件现在可以使用了。

约翰•哈里斯

正如JL1202提到的,我找不到这个提交的预编译的mex文件http://www.n-simon.de/mex

1月

@唐凌飞:对不起!如描述中所述,此提交仅适用于Windows:

这些mexo函数在Windows下获取和设置文件的创建、访问和写入时间

Lingfei唐

这只适用于Windows吗?难怪编译不能在Mac上工作,哈哈

1月

我将很快更新预编译文件的列表。

JL1202

嗨,简,
我无法在给定的地址找到预编译的mex文件。他们在那里吗?有人能提供吗,我在安装MinGW-w64编译器时遇到了麻烦。
谢谢,我

1月

这是24小时格式的回复时间。因此12:00 pm应该是12:00,而12:00am应该是00:00。此格式由操作系统定义,AM/PM应只关注显示。

帕特里克

这是个很有用的问题。如果我有一个在12:00PM拍摄的文件,脚本不会检测到“PM”。这对我来说是个问题。有人找到解决办法了吗?

庆余

作品描述!

Josh Philipson

谢谢你,简,有你这样的人,这里才很特别。

这正是我所需要的。让我向用户强调,您必须有预编译的mex文件!

al - artuner

对我来说非常有用的DLL。
谢谢你很多。

大卫·希尔德布兰德

Artik疯狂

Lasse

非常感谢!
我可以做一个“约会”吗?

1月

@Emile:我很高兴提供二进制文件有所帮助!
你用的是哪个编译器?在SetFileTime的文档中,你会发现一个警告,Matlab附带的LCC(至少到2009a)不识别TzSpecificLocalTimeToSystemTime。非常遗憾,因为这个函数并不是全新的。
我在网络中找到了一些变通方法,但源要比SetFileTime源长得多,复杂得多。

埃米尔Demarteau

亲爱的简,

你的函数看起来很有前途,但是我无法编译该函数,因为matlab在TzSpecificLocalTimeToSystemTime函数上返回一个错误。我在XP上运行matlab 7.5,所以这应该支持这个函数。金宝app

另外,我注释掉了使用此函数的错误警告。现在compilong工作,但是函数仍然返回一个错误:“SetFileTime: Time to FILETIME failed!”或“输入参数太多”

最后,您预编译的dll修复了这个问题。

谢谢你把这个放到网上!

欢呼,
《爱弥尔》

1月

@Drew:抱歉,我忘了明确地提到,c文件必须在使用之前被编译。
首先用“mex -setup”来安装你的编译器,如果之前没有这样做的话。然后按照c文件中提到的那样编译:"mex -O GetFileTime.c"和"mex -O SetFileTime.c"。
如果你运行一个32位的Matlab,我在指定的网页上提供预编译的Mex文件。
不幸的是,我不允许在FEX发布编译文件。

画了

这是我第一次从FEX下载,所以如果我犯了一个小错误,请原谅;然而,我无法让这个运行。

当我尝试使用GetFileTime时。我明白了:

???使用==> GetFileTime在77出错
*** getfiletim无法找到MEX脚本!

然后我尝试运行uTest_FileTime。M和收到了类似的回复:

=== Test SetFileTime / GetFileTime 14-Oct-2010 12:04:21
创建测试文件:
名称:“FileTime__.test”
日期:2010年10月14日12:04:21
字节数:0
isdir: 0
datenum: 7.3443 e + 005

GetFileTime:
???使用==> GetFileTime在77出错
*** getfiletim无法找到MEX脚本!

错误==> uTest_FileTime在59
回复= GetFileTime(文件);

任何想法吗?非常感谢。

1月

@Bass:我已经提交了一个改进的UTC<->本地时间转换的新版本。现在使用默认转换,GetFileTime与Matlab 7的DIR命令回复的时间相同。也可以使用UTC时间和类似windows的时间(取决于当前夏令时)。
感谢您找到这个问题!

低音

有用的函数。
但是要注意,这个函数返回的时间并不一定与MATLAB的dir函数返回的时间相匹配。这似乎是因为Windows在夏令时报告时间时添加了一个小时(即使文件不是在夏令时创建的)。看到//www.tatmou.com/金宝appsupport/金宝搏官方网站solutions/en/data/1-1YLPX9/index.html?product=ML&solution=1-1YLPX9)。
但是MATLAB不这样做。

这个函数似乎返回Windows时间。因此,在同时使用这两个函数时,我遇到了问题。

获取文件的创建时间非常有用,因为DIR输出不返回此信息

MATLAB版本兼容性
使用R2009a创建
与任何版本兼容
平台的兼容性
窗户 macOS Linux

社区寻宝

在MATLAB Central中找到宝藏,并发现社区如何帮助您!

开始狩猎!