我可以在 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 来看,您似乎还可以使用 NSFileManagersetAttributes(_:ofItemAtPath:) method 设置修改日期,它允许您为给定文件设置属性,包括 {{1} } 和 creationDate。但是,请注意:

与 POSIX 标准一样,应用必须拥有文件或目录,或者必须以超级用户身份运行才能使属性更改生效。