- Find the offending file(s) with windows explorer and edit it to change its modification time to now
- Use system(dir) (windows) system(ls) (unix) and parse the output yourself
- Use .Net (windows) System.IO.Directory methods, e.g. to get all files in a directory:
problem with dir function in R2014A
1 view (last 30 days)
Show older comments
after updating to R2014A, when I use the dir command i get a message: Caught "std::exception" Exception message is: Cannot convert dates prior to Jan 1, 1970
what does it means and how do I solve the problem?
0 Comments
Answers (2)
Guillaume
on 2 Dec 2014
There's a bug with dir, imfinfo and probably some other functions when they encounter a file with a modification date outside of a certain range.
In your case, it looks like you have a file with a modification date older than 1970. It's a perfectly valid file and matlab shouldn't choke on it but it does. I wasn't aware it occurred as well in 2014A, I thought it only appeared in 2014B because of their new datetime type. I've reported the bug to Mathworks. Whether it'll be fix anytime soon is unknown. Probably not, it's not even appeared in their bug database.
You have several workaround:
files = cell(System.IO.Directory.GetFiles(foldername));
2 Comments
Guillaume
on 2 Dec 2014
Edited: Guillaume
on 2 Dec 2014
However, I would note that the limitation of jan 1, 1970 is not unique to matlab. Some of the times on Windows and Unix are stored as the numbers of second ellapsed since Jan 1, 1970 and thus can't be any earlier. Even Windows Explorer doesn't cope well with dates before 1970: it doesn't display the date in the details column.
This is not the case for file modification time on Windows though. The reference is Jan 1, 1601.
Guillaume
on 2 Dec 2014
Also, in R2014b, I can't get dir to fail with modification dates before 1970, so this particular error may have been fixed in the latest version.
michael scheinfeild
on 18 Dec 2014
so there is no quick solution , what i did is rename all files to a(1).jpg , a(2).jpg
ant then run in loop where name is name=strcat ('a(',num2str(ind),').jpg')
0 Comments
See Also
Categories
Find more on File Operations in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!