这些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中央文件交换。检索.
@Zihan:秒后我没有看到数字。你是指小数秒吗?
嗨,简。这个函数非常有用。但是,我有一个问题:在输出时间中,第二后面的数字是什么意思?
@V R:没错。这个提交只能在Windows下工作,如上面的帮助部分和描述所述。
在macOS中编译C代码会出现错误
工作完美(Windows 10 64位,Matlab R2018a)!谢谢你!
预编译的文件现在可以使用了。
正如JL1202提到的,我找不到这个提交的预编译的mex文件http://www.n-simon.de/mex
@唐凌飞:对不起!如描述中所述,此提交仅适用于Windows:
这些mexo函数在Windows下获取和设置文件的创建、访问和写入时间
这只适用于Windows吗?难怪编译不能在Mac上工作,哈哈
我将很快更新预编译文件的列表。
嗨,简,
我无法在给定的地址找到预编译的mex文件。他们在那里吗?有人能提供吗,我在安装MinGW-w64编译器时遇到了麻烦。
谢谢,我
这是24小时格式的回复时间。因此12:00 pm应该是12:00,而12:00am应该是00:00。此格式由操作系统定义,AM/PM应只关注显示。
这是个很有用的问题。如果我有一个在12:00PM拍摄的文件,脚本不会检测到“PM”。这对我来说是个问题。有人找到解决办法了吗?
作品描述!
谢谢你,简,有你这样的人,这里才很特别。
这正是我所需要的。让我向用户强调,您必须有预编译的mex文件!
对我来说非常有用的DLL。
谢谢你很多。
非常感谢!
我可以做一个“约会”吗?
@Emile:我很高兴提供二进制文件有所帮助!
你用的是哪个编译器?在SetFileTime的文档中,你会发现一个警告,Matlab附带的LCC(至少到2009a)不识别TzSpecificLocalTimeToSystemTime。非常遗憾,因为这个函数并不是全新的。
我在网络中找到了一些变通方法,但源要比SetFileTime源长得多,复杂得多。
亲爱的简,
你的函数看起来很有前途,但是我无法编译该函数,因为matlab在TzSpecificLocalTimeToSystemTime函数上返回一个错误。我在XP上运行matlab 7.5,所以这应该支持这个函数。金宝app
另外,我注释掉了使用此函数的错误警告。现在compilong工作,但是函数仍然返回一个错误:“SetFileTime: Time to FILETIME failed!”或“输入参数太多”
最后,您预编译的dll修复了这个问题。
谢谢你把这个放到网上!
欢呼,
《爱弥尔》
@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(文件);
任何想法吗?非常感谢。
@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输出不返回此信息