我可以在 iOS 更改文件的修改日期或创建日期吗?

Can I change a file's modification or creation date on iOS?

我正在为我正在编写的一些文件同步代码编写一些单元测试,我想知道是否有可能(可能通过 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, it looks like you can also set the modification date using NSFileManager's setAttributes(_:ofItemAtPath:) method,它允许您设置给定文件的属性,包括 creationDatemodificationDate。但是,请注意:

As in the POSIX standard, the app either must own the file or directory or must be running as superuser for attribute changes to take effect.