在下初學IOS編程,有很多不懂以及不瞭解的地方,本著分享的精神,將自己學到用到的一些東西寫出來,如果有不正確的地方,希望大家指正。
本次講解的是IOS下各個檔案夾的相關知識。
首先,我們應該知道,在IOS下,共有4個檔案夾,分別是documents,tmp,app,Library,其中app我們一般比較少接觸到,因為裡面都是一些應用程式,貌似由於簽名之類的原因,我們在運行時不能修改這個目錄的東西否則可能導致我們的應用無法正常運行(這部分我也不太懂,建議想要詳細瞭解的童鞋再去查一下吧)。
而documents這個目錄,用於儲存使用者資料等相關資訊,也是我們主要應用的目錄。
tmp 目錄:這個目錄就和它的名字一樣,就是用於存放臨時檔案以及一些暫時不需要的資訊的。
library目錄,下設兩個收下,分別是Caches 和 Preferences,其中Preferences 目錄用於存放應用程式的喜好設定檔案。而Caches 目錄:用於存放應用程式專用的支援檔案。
下面是擷取各個目錄的代碼:
擷取Documents目錄路徑的方法:
NSString* documentPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0]; //1NSLog(@"%@", documentPath);//2
上述中步驟1就是擷取document目錄的方法。而2的作用在於輸出這個路徑,用於檢測,這裡我對初學者稍微提一下我犯的錯誤,就是我曾經按照目錄逐層地去找那個檔案,結果無論如何都找不到,那是因為有一層檔案是隱藏的,所以如果你想手動去找一下的話,需要設定隱藏檔案可視,方法很簡單,在命令列輸入如下:
顯示:defaults write com.apple.finder AppleShowAllFiles -bool true
隱藏:defaults write com.apple.finder AppleShowAllFiles -bool false
當然,這裡只是順便科普一下顯示/取消隱藏檔案的做法,我是不建議大家手動去找的,大家只需要點擊finder,然後點擊“前往”,將地址複製進去就OK了,方便快捷。
至於獲得其它的路徑的代碼,也是大同小異:
擷取library目錄路徑:
NSString *librarytPath=[NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES) objectAtIndex:0];
擷取tmp目錄路徑:
NSString *tempPath=NSTemporaryDirectory();
以上,就是常用的目錄路徑的擷取方法,那麼,當我們要具體獲得裡面的某一檔案的路徑的時候怎麼辦呢。以下
NSString *fileName = @"1.txt";//1 NSString *localDir = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];//2 NSLog(@"%@", localDir); NSString *filePath = [localDir stringByAppendingPathComponent:fileName];//3
上述代碼中,第一步是寫下檔案的名稱,第二步是取得document的路徑,第三步就是取得檔案路徑啦。
當然,這是我們明確知道檔案名稱的情況,或者我們要建立1.txt時候用到的,那麼在我們不知道裡面有什麼,且需要知道裡面都有些什麼的時候,可以用到下面的代碼:
NSString *path=[[NSString alloc] initWithString:localDir];NSFileManager * fileManager = [NSFileManager DefaultManager];NSArray *arrayForFile = [fileManager directoryContentsAtPath:path];
好啦,以上就是我在學習中用到的一些東西,如果有哪部分寫錯了,希望大家告訴我一下,我一定虛心改正。