【问题标题】:Can I change a file's modification or creation date on iOS?我可以在 iOS 上更改文件的修改或创建日期吗?
【发布时间】:2021-05-18 16:25:09
【问题描述】:
我正在为我正在编写的一些文件同步代码编写一些单元测试,我想知道是否有可能(可能通过FileManager 但谁知道)将文件的创建/修改日期更改为早于其当前日期的时间。或者即使我可以在创建新文件时指定创建日期。
如果可能的话,能够在我的测试中以编程方式执行此操作会很好,但否则我对它是否可以完成感兴趣。
我想只要它在 iOS 模拟器上运行就可以了。
【问题讨论】:
标签:
ios
file-io
nsfilemanager
file-manager
【解决方案1】:
您可以通过运行touch -t <date> <file> 更改修改日期,其中<date> 是新日期,<file> 是您要修改的文件。有关日期格式,请参见 touch 的手册页,但它基本上类似于 YYYYMMDDhhmm.SS(年、月、日、小时、分钟、秒)。
例子:
$ touch -t 197501020304.05 foo
$ ls -lT foo
-rw-r--r-- 1 userid staff 0 Jan 2 03:04:05 1975 foo
从documentation 看来,您还可以使用NSFileManager 的setAttributes(_:ofItemAtPath:) method 设置修改日期,这使您可以设置给定文件的属性,包括creationDate 和modificationDate。但请注意:
与 POSIX 标准一样,应用程序要么必须拥有文件或目录,要么必须以超级用户身份运行才能使属性更改生效。