獲取文件的路徑,即獲取documents的路徑


1. NSSearchPathForDirectoriesInDomains和NSHomeDirectory
iPhone和symbian 3rd一樣,會為每一個應用程序生成一個私有目錄,這個目錄位於/Users/sundfsun2009/Library/Application Support/iPhone Simulator/User/Applications下,並隨即生成一個數字字母串作為目錄名,在每一次應用程序啟動時,這個字母數字串都是不同於上一次。

通常使用Documents目錄進行數據持久化的保存,而這個Documents目錄可以通過 NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserdomainMask,YES) 得到,代碼如下:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];

// NSString *path = [documentsDirectory stringByAppendingPathComponent:@"aa.plist"];

NSLog(@"path: %@",path);

打印結果如下:

path: /Users/apple/Library/Application Support/iPhone Simulator/4.3/Applications/550AF26D-174B-42E6-881B-B7499FAA32B7/Documents

而這個目錄還可以通過 NSHomeDirectory()來得到,代碼如下:

NSString *destPath = NSHomeDirectory();
NSLog(@"path: %@",destPath);
//destPath = [destPath stringByAppendingPathComponent: @"Documents"];
//NSString *xmlpath = [destPath stringByAppendingPathComponent: @"menu/menu.xml"];

打印結果如下:

path: /Users/apple/Library/Application Support/iPhone Simulator/4.2/Applications/6F4BC466-C5D6-440C-BAAC-BE20FA468C61

看看兩者打印出來的結果,我們可以看出這兩種方法的不同。

在documents的路徑下創建文件。

首先要獲取documents的路徑,如上第6條。

其次就是下面的語句了:

NSString *writePath=[NSString stringWithFormat:@"%@/%@.txt",documentsPath,@"aaa"];
NSData *data = [@"" dataUsingEncoding:NSUTF8StringEncoding];//新文件的初始數據,設為空
[[NSFileManager defaultManager] createFileAtPath:writePath contents:data attributes:nil];//創建文件的命令在這里

這樣就可以在documents文件夾下創建一個aaa.txt的文件了。哈哈哈哈哈。

或者是用下面的語句,

NSString *writePath=[NSString stringWithFormat:@"%@/%@.txt",documentsDirectory,@"bbb"];
NSError *error;
[@"fasdfasdasddaa" writeToFile:writePath atomically:YES encoding:NSUTF8StringEncoding error:&error];

這樣就可以在documents文件夾下創建一個bbb.txt的文件了。並且,文件中的有"fasdfasdasddaa"字符。

總結起來就是,先給要存儲的東西取一個名字,然后,找到它的路徑。然后以這個名字創建。創建的時候可以添加內容


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM