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"字符。
總結起來就是,先給要存儲的東西取一個名字,然后,找到它的路徑。然后以這個名字創建。創建的時候可以添加內容