沙盒(SandBox)祖驱、文件操作

IOS中的沙盒機制(SandBox)是一種安全體系瞒窒,它規(guī)定了應(yīng)用程序只能在為該應(yīng)用創(chuàng)建的文件夾內(nèi)讀取文件,不可以訪問其他地方的內(nèi)容崇裁。所有的非代碼文件都保存在這個地方,比如圖片拔稳、聲音、屬性列表和文本文件等术奖。

  • MyApp.app

儲存內(nèi)容: 目錄包含了應(yīng)用程序本身的數(shù)據(jù)轻绞,包含資源文件和可執(zhí)行文件。整個目錄是只讀的,防止被篡改晰赞,选侨,應(yīng)用被安裝時會將該目錄簽名然走。
是否會被iTunes同步:

  • Documents

儲存內(nèi)容:存放不可再生數(shù)據(jù)文件
是否會被iTunes同步:

  • Documents/Inbox

儲存數(shù)據(jù):用來保存由外部應(yīng)用請求當(dāng)前應(yīng)用程序打開的文件。例如:現(xiàn)有一個應(yīng)用book.app可以打開txt格式的文件晨仑,而在另一個應(yīng)用BookShop.app有一個a.txt的文件需要用book.app打開拆檬,但沙盒機制不允許book直接訪問BookShop的沙盒中文件,所以蘋果的解決辦法是講BookShop中的a.txt文件拷貝到book中的Documents/Inbox下竟贯,再讓book打開a.txt。
是否會被iTunes同步:

  • Library

儲存內(nèi)容:建議存放默認數(shù)據(jù)或其他狀態(tài)信息拱镐。
是否會被iTunes同步: 是(不包括Caches子目錄)

  • Library/Caches

儲存內(nèi)容:主要儲存緩存文件持际,使用過程中的緩存文件可以儲存在這里。用于保存可再生文件蜘欲。比如網(wǎng)絡(luò)請求,但一般應(yīng)用程序要負責(zé)清理這些數(shù)據(jù)呜叫。
是否會被iTunes同步:

  • Library/Preferences

儲存內(nèi)容:儲存應(yīng)用的偏好設(shè)置文件殿衰,一般我們使用NSUserDefaules寫的數(shù)據(jù)都會存在這個文件的plist文件中。
是否會被iTunes同步:

  • tmp

儲存內(nèi)容:各種臨時文件闷祥,保證再次啟動不需要的文件,當(dāng)應(yīng)用不再需要這些文件時應(yīng)該主動將其刪除箱硕,因為隨時可能被系統(tǒng)清理。
是否會被iTunes同步:

獲取目錄

    //獲取根目錄
    NSString *homePath = NSHomeDirectory();
    NSLog(@"\n根目錄:%@",homePath);

    //獲取documents目錄
    NSString *docmentPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject];
    NSLog(@"\n獲取Documents目錄:%@",docmentPath);
    //另一種方式
    NSURL *documentURL = [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] firstObject];
    NSLog(@"\n獲取Documents目錄%@",documentURL);

    //獲取Librarys
    NSString *libraryPath = [NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES) firstObject];
    NSLog(@"\n獲取Libray目錄:%@",libraryPath);
    //同樣另一種方式
    NSURL *libraryURL = [[[NSFileManager defaultManager] URLsForDirectory:NSLibraryDirectory inDomains:NSUserDomainMask] firstObject];
    NSLog(@"\n獲取Libray目錄:%@",libraryURL);

    //獲取Cache目錄
    NSString *cachePath = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) firstObject];
    NSLog(@"\n獲取Cache目錄:%@",cachePath);
    NSURL *cacheURL = [[[NSFileManager defaultManager] URLsForDirectory:NSCachesDirectory inDomains:NSUserDomainMask]firstObject];
    NSLog(@"\n獲取Cache目錄:%@",cacheURL);

    //temp目錄
    NSString *tempPath = NSTemporaryDirectory();
    NSLog(@"temp目錄:%@",tempPath);

目錄查找

NSApplicationDirectory = 1,             // 到applications (Applications)目錄下
 NSDemoApplicationDirectory,             // 到Applications/Demos目錄下
 NSDeveloperApplicationDirectory,        // 到Developer/Applications目錄下.
 NSAdminApplicationDirectory,            // 到Applications/Utilities目錄下
 NSLibraryDirectory,                     // 到Library目錄下
 NSDeveloperDirectory,                   // 到Developer目錄下.
 NSUserDirectory,                        // 到用戶的主目錄下
 NSDocumentationDirectory,               // 到documentation (Documentation)的目錄下
 NSDocumentDirectory,                    // 到documents (Documents)目錄下
 NSCoreServiceDirectory,                 // CoreServices目錄的位置 (System/Library/CoreServices)
 NSAutosavedInformationDirectory         // 自動保存的文檔位置 (Documents/Autosaved)
 NSDesktopDirectory = 12,                // 本地用戶的桌面
 NSCachesDirectory = 13,                 // 本地緩沖區(qū)目錄(Library/Caches)
 NSApplicationSupportDirectory           // 本地應(yīng)用支持文件目錄 (plug-ins, etc) (Library/Application Support)
 NSDownloadsDirectory                    // 本地下載downloads目錄
 NSInputMethodsDirectory                 // 輸入方法目錄 (Library/Input Methods)
 NSMoviesDirectory                       // 電影目錄 (~/Movies)
 NSMusicDirectory                        // 音樂目錄 (~/Music)
 NSPicturesDirectory                     // 圖片目錄 (~/Pictures)
 NSPrinterDescriptionDirectory           // PPDs目錄 (Library/Printers/PPDs)
 NSSharedPublicDirectory                 // 本地用戶分享目錄 (~/Public)
 NSPreferencePanesDirectory              // PreferencePanes目錄的位置使用系統(tǒng)的偏好設(shè)置 (Library/PreferencePanes)
 NSApplicationScriptsDirectory           // 本地用戶 scripts 文件夾座泳,對于所需的應(yīng)用(~/Library/Application Scripts/code-signing-id)
 NSItemReplacementDirectory              // For use with NSFileManager's URLForDirectory:inDomain:appropriateForURL:create:error:
 NSAllApplicationsDirectory = 100,       // 應(yīng)用能夠發(fā)生的所有路徑
 NSAllLibrariesDirectory = 101,          //資源可以發(fā)生的所有目錄
 NSTrashDirectory                        // 垃圾存放目錄

查找的區(qū)域:

 NSUserDomainMask = 1,       // 用戶的主目錄
 NSLocalDomainMask = 2,      // 當(dāng)前機器的本地目錄
 NSNetworkDomainMask = 4,    // 在網(wǎng)絡(luò)中公開可用的位置
 NSSystemDomainMask = 8,     // 被蘋果系統(tǒng)提供的幕与,不可更改的位置 (/System)
 NSAllDomainsMask = 0x0ffff  // 上述所有及未來的位置

文件操作

    1镇防、在指定URL創(chuàng)建文件
    NSError *error;
    NSFileManager *fileManager = [NSFileManager defaultManager];
    [fileManager createDirectoryAtURL:createURL withIntermediateDirectories:YES attributes:nil error:&error];
    //在指定目錄下創(chuàng)建某data的文件
    [fileManager createFileAtPath:[fileURL path] contents:data attributes:nil];
  
    2、將某個目錄下的文件夾copy到指定目錄
    NSError *error;
    NSFileManager *fileManager = [NSFileManager defaultManager];
    //判斷路徑是否存在来氧,如果存在就刪除
    if ([fileManager fileExistsAtPath:[toURL path]]) {
        [fileManager removeItemAtURL:toURL error:&error];
    }
    [fileManager copyItemAtURL:folderUrl toURL:toURL error:&error];
    3、刪除指定路徑
    NSError * error;
    NSFileManager * fileManager = [NSFileManager defaultManager];
    if ([fileManager fileExistsAtPath:[floderURL path]]) {
        [fileManager removeItemAtURL:floderURL error:&error];
    }
    


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末中狂,一起剝皮案震驚了整個濱河市考传,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌僚楞,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,544評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件赐写,死亡現(xiàn)場離奇詭異膜赃,居然都是意外死亡,警方通過查閱死者的電腦和手機跳座,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,430評論 3 392
  • 文/潘曉璐 我一進店門疲眷,熙熙樓的掌柜王于貴愁眉苦臉地迎上來禾蚕,“玉大人狂丝,你說我怎么就攤上這事”妒裕” “怎么了?”我有些...
    開封第一講書人閱讀 162,764評論 0 353
  • 文/不壞的土叔 我叫張陵县习,是天一觀的道長。 經(jīng)常有香客問我哈蝇,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,193評論 1 292
  • 正文 為了忘掉前任样勃,我火速辦了婚禮,結(jié)果婚禮上峡眶,老公的妹妹穿的比我還像新娘植锉。我一直安慰自己,他們只是感情好俊庇,可當(dāng)我...
    茶點故事閱讀 67,216評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著搬男,像睡著了一般彭沼。 火紅的嫁衣襯著肌膚如雪缔逛。 梳的紋絲不亂的頭發(fā)上姓惑,一...
    開封第一講書人閱讀 51,182評論 1 299
  • 那天,我揣著相機與錄音敦冬,去河邊找鬼望众。 笑死匪补,一個胖子當(dāng)著我的面吹牛烂翰,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播踊兜,決...
    沈念sama閱讀 40,063評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼佳恬,長吁一口氣:“原來是場噩夢啊……” “哼于游!你這毒婦竟也來了垫言?” 一聲冷哼從身側(cè)響起贰剥,我...
    開封第一講書人閱讀 38,917評論 0 274
  • 序言:老撾萬榮一對情侶失蹤蚌成,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后担忧,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體坯癣,經(jīng)...
    沈念sama閱讀 45,329評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,543評論 2 332
  • 正文 我和宋清朗相戀三年惩猫,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片帆锋。...
    茶點故事閱讀 39,722評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡禽额,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出脯倒,到底是詐尸還是另有隱情,我是刑警寧澤藻丢,帶...
    沈念sama閱讀 35,425評論 5 343
  • 正文 年R本政府宣布悠反,位于F島的核電站残黑,受9級特大地震影響斋否,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜茵臭,卻給世界環(huán)境...
    茶點故事閱讀 41,019評論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望奇徒。 院中可真熱鬧,春花似錦摩钙、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,671評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至谬返,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間遣铝,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,825評論 1 269
  • 我被黑心中介騙來泰國打工瘫絮, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留填硕,地道東北人麦萤。 一個月前我還...
    沈念sama閱讀 47,729評論 2 368
  • 正文 我出身青樓壮莹,卻偏偏與公主長得像,于是被迫代替她去往敵國和親命满。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,614評論 2 353

推薦閱讀更多精彩內(nèi)容