Mac OS X的存储文件的创建时间,我知道如何与阅读stat()的<sys/stat.h>.
我找不到办法,如何在C中设置创建时间.必须以某种方式可能,因为实用程序SetFile可以做到(SetFile是Apple的命令行工具包的一部分):
SetFile -d '12/31/1999 23:59:59' file.txt
Run Code Online (Sandbox Code Playgroud)
我怎么能用C做呢?
您可以使用utimes。
如果 times 为非 NULL,则假定它指向两个 timeval 结构的数组。访问时间设置为第一个元素的值,修改时间设置为第二个元素的值。
和:
对于支持文件诞生(创建)时间的文件系统(例如 UFS2),如果第二个元素早于当前设置的诞生时间,则诞生时间将设置为第二个元素的值。要同时设置出生时间和修改时间,需要两次调用;第一个设置出生时间,第二个设置(可能较新)修改时间
举个例子:
struct timeval times[2];
memset(times, 0, sizeof(times));
times[0].seconds = 946684799; /* 31 Dec 1999 23:59:59 */
times[1].seconds = 946684799;
utimes("/path/to/file", ×);
Run Code Online (Sandbox Code Playgroud)
如果传递的修改时间早于文件的当前创建时间,则将设置创建时间。utimes如果您想设置不同的修改时间,您可以再次调用。
| 归档时间: |
|
| 查看次数: |
842 次 |
| 最近记录: |