问题描述
我正在为我正在编写的一些文件同步代码编写一些单元测试,我想知道是否有可能(可能通过 FileManager
但谁知道)更改文件的创建/修改日期 到比当前日期更早的时间。或者即使我可以在创建新文件时指定创建日期。
如果可能的话,能够在我的测试中以编程方式执行此操作会很好,但除此之外,我对它是否可以完成很感兴趣。
我想只要它能在 iOS 模拟器上运行就可以。
解决方法
您可以通过运行 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 设置修改日期,它允许您为给定文件设置属性,包括 {{1} } 和 creationDate
。但是,请注意:
与 POSIX 标准一样,应用必须拥有文件或目录,或者必须以超级用户身份运行才能使属性更改生效。