3
我想讓我的應用程序文件系統保存關於其中每個文件的元數據,但也支持在用戶端創建目錄。我看過NSFileWrapper
,但它似乎將元數據保存爲目錄的文件。這是有道理的,但現在如何區分實際目錄和NSFileWrapper
目錄?或者我應該在每個目錄中使用隱藏的plist
文件跟蹤元數據?預先感謝任何幫助!區分NSFileWrapper和目錄?
我想讓我的應用程序文件系統保存關於其中每個文件的元數據,但也支持在用戶端創建目錄。我看過NSFileWrapper
,但它似乎將元數據保存爲目錄的文件。這是有道理的,但現在如何區分實際目錄和NSFileWrapper
目錄?或者我應該在每個目錄中使用隱藏的plist
文件跟蹤元數據?預先感謝任何幫助!區分NSFileWrapper和目錄?
您可以使用setxattr在文件上存儲元數據的額外鍵/值對。 Mattt Thompson撰寫了關於NSHipster的優秀深度文章。
這裏是例如從製品,顯示出如何設置的屬性值:在其上支持擴展的元數據屬性的Mac文件系統
#include <sys/xattr.h>
const char *filePath = [fileURL fileSystemRepresentation];
const char *name = "com.Example.Etag";
const char *value = [[response allHeaderFields][@"Etag"] UTF8String];
int result = setxattr(filePath, name, value, strlen(value), 0, 0);
setxattr
作品。在OS X和iOS上,這由HFS +支持,其中元數據存儲在資源分支中,最大大小限制爲128KB。
您可以使用listxattr來檢索可用標籤。使用getxattr檢索特定標籤的值。
使用此應用程序的一個示例是TextMate,它存儲狀態信息,例如當前插入符號位置,書籤和行摺疊。
重要的是要注意元數據是不穩定的,不應該依賴於保留關鍵信息。
其他參考:
它看起來像'setxattr'可能對這項工作。 http://nshipster.com/extended-file-attributes/ –
@LukeVanIn這絕對是真棒。你能否將這一點形容爲某種答案,並引用了它的使用情況?像TextMate一樣? –