File::getLastModificationTime() is very slow on Windows (about 15-30 files per second). Is there a better (yet simple) way to retrieve last modification dates for a random list of files?
Here’s the solution for fast last modification time & file size retrieval for Win32: Using Win32’s GetFileAttributesEx() instead of Win32’s GetFileTime().
Could be added to JUCE. The speedup is about 100 times, so it’s definately worth it. I think the major speedup comes from the fact that the file has not to be opened prior to getting the information.
// function returns false if something went wrong. Please note that the file you pass must exist or otherwise strange results may occur!
bool getFileAttributes(File &file, int64 &lastModificationTime, int64 &fileSize)
lastModificationTime= (int64(tim.dwHighDateTime)<<32) | int64(tim.dwLowDateTime); fileSize= (int64(inf.nFileSizeHigh)<<32) | int64(inf.nFileSizeLow); return true; } return false;
Oh right, I didn’t know it was so slow! Thanks, I’ll sort get that sorted out!