How do I get the file date and time

55 次查看(过去 30 天)
Hello folks,
in my Simulink model I want to create a block which will read from a file from time to time. The file will not be updated every time the block runs, so in order to save the performance for fopen'ing the file I would just like to check on the file date and time.
Is there any handy Matlab function which will return the file's date and time as a number (e.g. double, 32 bit int etc.)
This is for Matlab / Simulink R2012a, running on WinXP.
Thanks for any hints
Norbert

采纳的回答

TAB
TAB 2012-3-23
FileInfo = dir('YourFileWithExtention');
TimeStamp = FileInfo.date;
By the way, in which block of simulink you are using fopen.
[Edited 26 Mar, 2012]
% Get individual components of date & time in 1 Sec resolution
FileInfo = dir('YourFileWithExtention');
[Y, M, D, H, MN, S] = datevec(FileInfo.datenum);
Declare datevec as extrinsic before using.
  4 个评论
TAB
TAB 2012-3-26
Above functions always returns time with 1 sec resolution.
FileInfo.date will resurn the whole value as string.
If you are using embedded matlab function block, you can also evaluate the invidual values of Year, date, month.....etc.
Please see my edited answer.
Jan
Jan 2012-3-26
The datenum field contains even fractional seconds.

请先登录,再进行评论。

更多回答(2 个)

Norbert
Norbert 2012-3-26
Since I only need to detect a change of the file I will now use the Bytes field of the structure and check for a change of size, this will also work for me.
Btw. I am not sure I understand your question. I use a "Matlab Function" block. I have to declare the fopen as "extrinsic" though.

Tony Jiang
Tony Jiang 2016-6-2
编辑:Tony Jiang 2016-6-2
datestr(FileInfo.date,29) will report the date only without the time info. you can play with the different formatting in datestr though..

类别

Help CenterFile Exchange 中查找有关 Get Started with Simulink 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by