iOS 按添加日期对文件夹中的文件进行排序
Posted
技术标签:
【中文标题】iOS 按添加日期对文件夹中的文件进行排序【英文标题】:iOS sort files in folder by date added 【发布时间】:2013-01-18 14:52:22 【问题描述】:我的应用从 Internet 下载文件。 应用程序将它们存储在 Documents 文件夹中。 应用程序使用 iTunes 共享功能,用户可以通过 iTunes 将文件存储在 Documents 文件夹中(当我的应用程序启动时和我的应用程序未启动时)。 在我的应用程序的一个表格视图中,我想显示 Documents 目录中按添加日期排序的文件(日期,文件添加到 Documents 目录的时间)。 ios上是否有像“添加日期”这样的文件属性? 我怎样才能找回它? 我搜索了这个,但我暂时找不到答案。
我想我可以使用 DirectoryWatcher 保存下载文件和在我的应用启动时通过 iTunes 添加的文件的日期。 但是我不知道在我的应用程序未启动时如何获取通过 iTunes 存储在 Documents 中的文件的“添加日期”。 我该怎么做?
我知道 Mac OS 10.7 上的 Finder 中添加了按日期排列。他们是怎么做到的?
谢谢。
【问题讨论】:
【参考方案1】:是的,您可以使用 NSFileManager 来执行此操作,您可以给它一个文件路径来请求属性字典,其中一个是修改日期
https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSDictionary_Class/Reference/Reference.html#//apple_ref/occ/instm/NSDictionary/fileModificationDate
【讨论】:
据我了解,这适用于我的应用从 Internet 下载的文件,因为在这种情况下,文件修改(和创建)的日期与添加到 Documents 目录的日期相同。但是对于用户通过 iTunes 添加的文件,这是不合适的。如果我错了,请纠正我。 试试看,如果他们从 iTunes 下载文件很可能会出现在应用程序的 Documents 目录中,所有文件都有修改日期等,所以我不确定没有测试但假设值得一试,这就是我要开始的地方。【参考方案2】:我发现该文件的属性中不包含添加日期。 在通过 iTunes Connect 将文件从 mac 复制到应用程序创建日期和修改日期后保持不变(就像它们在 mac 上一样)。 我还发现 Mac 上的 Finder 使用外部 sqlite 数据库 ~/Library/Preferences/com.apple.dock.db 来存储添加日期属性。
因此,出于我的需要,我决定使用某种外部数据库来存储“添加日期”值。 我想我会使用 NSUserDefaults,我会使用文件名和 inode 号作为键。
【讨论】:
以上是关于iOS 按添加日期对文件夹中的文件进行排序的主要内容,如果未能解决你的问题,请参考以下文章