我有iOS應用程序。文檔目錄中有一些文件。我需要檢查這些文件是否被編輯或替換。什麼是正確的方法來做到這一點?我應該對文件進行散列還是上次編輯的時間(如何在iOS中獲得這個時間),還是有更好的方法來實現它?檢查文件是否更新
Q
檢查文件是否更新
1
A
回答
4
您可以使用此代碼來獲取文件的修改日期:
NSFileManager* fileManager = [NSFileManager defaultManager];
NSDictionary* attributes = [fileManager attributesOfItemAtPath:path error:nil];
if (attributes != nil) {
NSDate *date = (NSDate*)[attributes objectForKey:NSFileModificationDate];
NSLog(@"Last modification date: %@", [date description]);
} else {
NSLog(@"Not found");
}
here你可以找到attributesOfItemAtPath:error:
函數的文檔,以及here文件屬性的列表,你可以得到
+0
謝謝你的解決方案! – 2013-03-03 19:52:27
1
散列整個文件都可以工作,但對於大多數用途來說有點矯枉過正。我想結合一些東西是快速訪問:
- NSFileModificationDate
- NSFileSize
- NSFileCreationDate
- NSFileSystemFileNumber(inode編號)
如果您使用的是NSURL爲主API(iOS 4.0+),我會用
- NSURLContentModificationDateKey(修改時間)
- NSURLFileSizeKey
- NSURLCreationDateKey
- NSURLFileAllocatedSizeKey
- NSURLAttributeModificationDateKey(
st_ctime
?)
我會至少使用修改時間和文件大小。其他的事情的東西,一般不會改變,除非內容的變化,有以下兩點:
- NSFileSystemFileNumber(inode編號),如果用戶從備份恢復可能會發生變化。
- NSURLAttributeModificationDateKey應該在屬性更改時更改。如果它是
st_ctime
(我不完全確定它是),它幾乎是保證捕獲文件的所有更改,但也可能捕獲許多不代表文件內容更改的更改。我不知道這些更改是否發生在外部(例如,iTunes/iCloud備份是否將屬性設置爲備份過程的一部分?)。
相關問題
- 1. c linux檢查文件是否更新/更改/修改?
- 2. 如何檢查Android中的遠程文件是否更新?
- 3. 如何檢查文件是否被更新
- 4. 檢查一個文件是否已經更新
- 5. Dropbox API檢查文件是否已更新
- 6. 檢查更新是否成功
- 7. 檢查Windows更新是否可用
- 8. 檢查RSS源是否有更新?
- 9. SQL檢查更新前是否存在
- 10. 檢查SVN是否已更新C#
- 11. 檢查php mysql更新是否成功
- 12. 檢查是否更新網頁
- 13. 如何檢查NSPasteboard是否已更新?
- 14. 檢查供稿是否有更新
- 15. 檢查兩列是否同時更新
- 16. 如何檢查iOS是否有更新?
- 17. Python:檢查新文件是否在文件夾中
- 18. Android;檢查文件是否存在,但不創建新文件
- 19. 檢查文件路徑是否正確,但不檢查文件是否存在
- 20. clearcanvas檢查文件是否是dicomdir
- 21. 檢查.txt文件是否是最新的
- 22. 檢查_id是否存在使用和更新子文檔Pymongo
- 23. Firestore - 檢查正在更新的文檔是否存在
- 24. PHP檢查是否MySQL查詢是一個插入或更新
- 25. 檢查IList是否更改?
- 26. 檢查文本框是否已更改。如果是這樣,更新字段。
- 27. 更新Tensorflow檢查文件到1.0
- 28. iOS:檢查遠程文件更新
- 29. 如何檢查更新的文件?
- 30. 文件檢查與自動更新
你一定要檢查它的更新時間。 繼續保存更新的時間給一些plist並檢查它。 – 2013-03-03 18:45:24
除了應用程序之外,誰還可以在運行時編輯/替換'Documents'目錄中的文件...? – holex 2013-03-03 18:45:29
itunes同步,你可以添加一些文件到documets目錄從itunes – 2013-03-03 18:47:26