我有一些简单的代码试图获取用户回收站的最后修改日期。此代码似乎适用于其他文件,但它不适用于回收站。我做了一些调查,似乎回收站是一个特殊文件,因为它不是常规文件。这可以解释为什么我会得到 Unix 纪元。这是我的代码:
struct tm* tmDateModified;
struct stat attribute;
stat("C:\\$Recycle.Bin\\Recycle Bin", &attribute);
tmDateModified = gmtime(&(attribute.st_mtime));
std::string date = asctime(tmDateModified);
String^ date2 = marshal_as<String^>(date);
MessageBox::Show(date2);
当我执行此代码时,MessageBox 会显示Thu Jan 1 00:00:00 1970作为结果,这又是 Unix 纪元。我知道这是可能的,因为我以前在其他应用程序中看到过它,但是,我无法访问它们的源代码,所以我无法确切地弄清楚它们是如何做到的。如果有人知道为什么显示 Unix 纪元而不是实际修改日期以及如何修复它,我会寻求帮助。