2011-06-22 65 views
0

每當我寫一個文件(使用方法,如`NSArray的將writeToFile:原子:」我第一次使用:什麼是默認的文件讀/寫位置?

NSString* rootDir=[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0]; 
NSString* fileName=[rootDir stringByAppendingPathComponent: @"my_file_name"]; 

哪裏文件寫入到,如果我只是寫@"my_file_name"代替

回答

2

它會被寫入到你的應用程序文件夾,但是,在這種情況下,NSArray writeToFile:atomically:將返回NO,你不會有寫權限有

0

試試看。你可能會驚訝。

我希望它推遲到POSIX層;即它寫入「當前目錄」。令人驚訝的是,在iOS上,當前目錄是/而不是/var/mobile/Applications/SOME-GUID-ABCDEF/MyApp.app(或者現在安裝到這些天的任何地方)或其父母。在GDB中,您可以嘗試類似print (char*)getcwd((char*)0,(size_t)0)(請注意,此泄漏...)。

您還可以嘗試[NSData dataWithContentsOfFile:@"MyImage.png"]var/mobile/Applications/.../MyApp.app/MyImage.png(省略前導/使其成爲相對路徑),以查看它是否看起來在您的應用程序的捆綁目錄中。

不管怎樣,如果蘋果決定改變未來操作系統版本的行爲,我會避免依賴它。

1

它會將它寫入任何應用程序設置的當前目錄中。路徑相對於[NSFileManager currentDirectoryPath]

相關問題