阻止檔案不被上傳到iCloud
}
You can put data in Documents folder but before keep in documents folder create a folder within Documents folder suppose namely temp. Then write the following code to not backup in iCloud.[[NSFileManager defaultManager] createDirectoryAtPath:temp
withIntermediateDirectories:NO
attributes:nil
error:nil];
NSURL *dbURLPath = [NSURL URLWithString:temp];
[self addSkipBackupAttributeToItemAtURL:dbURLPath];
Also implement the method addSkipBackupAttributeToItemAtURL do not forget to include
#include
- (BOOL)addSkipBackupAttributeToItemAtURL:(NSURL *)URL {
const char* filePath = [[URL path] fileSystemRepresentation];
const char* attrName = "com.apple.MobileBackup";
u_int8_t attrValue = 1;
int result = setxattr(filePath, attrName, &attrValue, sizeof(attrValue), 0, 0);
return result == 0;
}
iOS的檔案分類、存放路徑及檔案屬性
關鍵資料
內容:使用者建立的資料檔案,無法在刪除後自動重新建立,且會
路徑:主目錄/Documents
屬性:不要設定"不備份"
管理:iOS系統即時遇到儲存空間不足的情況下,也不會清除,同時會備份到iTunes或iCloud中
快取資料
內容:可用於離線環境,可被重複下載重複生成,即時在離線時缺失,應用本身也可以正常執行
路徑:主目錄/Library/Caches
屬性:預設
管理:在儲存空間不足的情況下,會清空, 並且不會被自動備份到iTunes和iCloud中
臨時資料
內容:應用執行時,為完成某個內部操作臨時生成的檔案
路徑:主目錄/tmp
屬性:預設
管理:隨時可能被iOS系統清除,且不會自動備份到iTunes和iCloud,儘量在檔案不再使用時,應用自己情況,避免對使用者裝置空間的浪費
離線資料
內容:與快取資料類似,可以被重新下載和重建,但是使用者往往希望在離線時資料依然能夠託托地存在著
目錄:主目錄/Documents 或 主目錄/Library/自定義的資料夾
屬性:放於Documents下不需設定,放在自定義資料夾中需設定"不備份"
管理:與關鍵資料類似,即時在儲存空間不足的情況下也不會清楚,應用自己應該清除已經不再使用的檔案,以免浪費使用者裝置空間
從iOS5.0.1引入的設定不要備份檔案(資料夾也適用)的擴充套件屬性
2012-03-23 11:28 452人閱讀 評論(0) 收藏 舉報 先閱讀官方說明: 使用方法: #import “sys/xattr.h”
- (BOOL)addSkipBackupAttributeToItemAtURL:(NSURL *)URL
{
const char* filePath = [[URL path] fileSystemRepresentation];
const char* attrName = “com.apple.MobileBackup”;
u_int8_t attrValue = 1;
int result = setxattr(filePath, attrName, &attrValue, sizeof(attrValue), 0, 0);
return result == 0;
}
- (void)addSkipBackupAttributeToPath:(NSString*)path {
u_int8_t b = 1;
setxattr([path fileSystemRepresentation], “com.apple.MobileBackup”, &b, 1, 0, 0);
}