ios本地檔案新增屬性

2021-08-24 18:06:08 字數 1738 閱讀 6870

以前開發的時候想要給檔案新增乙個屬性,系統提供的屬性不太夠, 想增加新的額外屬性 . 當時沒找到,今天偶然看見了,感激並記錄下.

每乙個檔案都有一組屬性資訊,我們通常可以用以下幾種方法來獲得屬性資訊:

nsstring *path = @"...";

//通過nsfilemanager獲取檔案的屬性

nsdictionary *attributes = [[nsfilemanager defaultmanager] attributesofitematpath:path error:null];

nslog(@"%@",attributes);

//通過mditem獲取檔案的屬性

mditemref item = mditemcreate(kcfallocatordefault, (__bridge cfstringref)path);

cfarrayref names = mditemcopyattributenames(item);

attributes = (__bridge_transfer nsdictionary *)(mditemcopyattributes(item, names));

cfrelease(item);

nslog(@"%@",attributes);

//通過nsurl獲取檔案屬性

nsurl *fileurl = [nsurl fileurlwithpath:path];

attributes = [fileurl resourcevaluesforkeys:[nsarray arraywithobject:nsurlfilesizekey] error:null];

nslog(@"%@",attributes);

方法一(通過定義在sys/xattr.h的函式實現):

#include //為檔案增加乙個擴充套件屬性

- (bool)extended1withpath:(nsstring *)path key:(nsstring *)key value:(nsdata *)value

//讀取檔案擴充套件屬性

- (nsdata *)extended1withpath:(nsstring *)path key:(nsstring *)key

else if (readlen > sizeof(buffer)) else

} while (yes);

return nil;

}

方法二(通過nsfilemanager乙個特殊的attributename):

//為檔案增加乙個擴充套件屬性

- (bool)extended2withpath:(nsstring *)path key:(nsstring *)key value:(nsdata *)value

//讀取檔案擴充套件屬性

- (nsdata *)extended2withpath:(nsstring *)path key:(nsstring *)key

nsdictionary *extendedattributes = [attributes objectforkey:@"nsfileextendedattributes"];

if (!extendedattributes)

return [extendedattributes objectforkey:key];

}

iOS開發 為本地檔案新增自定義屬性的工具類

前言 實際開發,我們可能會有這樣的需求,就是為檔案新增自定義的屬性,或者是可以將檔案的相關資訊新增進該檔案的屬性中,這樣可以以備下次讀取利用。那麼本文就是要介紹 拓展檔案屬性的工具類 github 也給出了這個工具類的示例原始碼 這個工具類的設計學習 來自老譚部落格筆記 老譚講解了兩種方法為本地檔案...

iOS分類新增屬性

我們可以通過runtime來給ios的分類新增屬性.1.首先我們像普通的類一樣在.h裡頭使用 property宣告乙個屬性 ch.h.這裡是 類的ch分類的.h檔案 inte ce ch property nonatomic strong nsstring name end這時,m中就會出現兩個警告...

iOS動態新增屬性

之前一篇文章 ios關聯物件 詳細介紹了如何通過關聯物件新增屬性,本篇文章將介紹如何通過runtime的class addproperty或class addivar動態新增屬性,並且帶領大家看看這兩個方法底層是如何實現的。對於已經存在的類我們用class addproperty方法來新增屬性,而對...