我可以在 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,它允许您设置给定文件的属性,包括 creationDate
和 modificationDate
。但是,请注意:
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.
我正在为我正在编写的一些文件同步代码编写一些单元测试,我想知道是否有可能(可能通过 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,它允许您设置给定文件的属性,包括 creationDate
和 modificationDate
。但是,请注意:
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.