標籤:
關鍵資料
內容:使用者建立的資料檔案,無法在刪除後自動重新建立,且會
路徑:主目錄/Documents
屬性:不要設定"不備份"
管理:iOS系統即時遇到儲存空間不足的情況下,也不會清除,同時會備份到iTunes或iCloud中
快取資料
內容:可用於離線環境,可被重複下載重複產生,即時在離線時缺失,應用本身也可以正常運行
路徑:主目錄/Library/Caches
屬性:預設
管理:在儲存空間不足的情況下,會清空, 並且不會被自動備份到iTunes和iCloud中
臨時資料
內容:應用運行時,為完成某個內部操作臨時產生的檔案
路徑:主目錄/tmp
屬性:預設
管理:隨時可能被iOS系統清除,且不會自動備份到iTunes和iCloud,盡量在檔案不再使用時,應用自己情況,避免對使用者裝置空間的浪費
離線資料
內容:與快取資料類似,可以被重新下載和重建,但是使用者往往希望在離線時資料依然能夠托托地存在著
目錄:主目錄/Documents 或 主目錄/Library/自訂的檔案夾
屬性:放於Documents下不需設定,放在自訂檔案夾中需設定"不備份"
管理:與關鍵資料類似,即時在儲存空間不足的情況下也不會清楚,應用自己應該清除已經不再使用的檔案,以免浪費使用者裝置空間
從iOS5.0.1引入的設定不要備份檔案(檔案夾也適用)的擴充屬性
1 #include <sys/xattr.h>
2 - (BOOL)addSkipBackupAttributeToItemAtURL:(NSURL *)URL
3 {
4 const char* filePath = [[URL path] fileSystemRepresentation];
5
6 const char* attrName = "com.apple.MobileBackup";
7 u_int8_t attrValue = 1;
8
9 int result = setxattr(filePath, attrName, &attrValue, sizeof(attrValue), 0, 0);
10 return result == 0;
11 }
1.列出相應路徑的擴充屬性
Ssize_t listxattr(const char *path , //路徑
char *list, //是擴充屬性名字,是一個數組,每個擴充屬性以\0結束 例如:user.name1\0system.name1\0user.name2\0
size_t size); //分配緩衝的大小
返回的是擴充屬性的大小 包括/0;
2.列出擴充屬性所對應的值
ssize_t getxattr(const char *path, //路徑
const char *name, //擴充屬性名字
void *value, //擴充屬性所對應的值
size_t size); //擴充屬性的長度
3.設定擴充屬性
setxattr(path, //路徑
key, //擴充屬性的名字
value, // 擴充屬性的值
size, //擴充屬性的長度
flags); //標識
iOS的檔案分類、存放路徑及檔案屬性