生活随笔
收集整理的這篇文章主要介紹了
iOS学习之iOS沙盒(sandbox)机制和文件操作(二)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
接上篇?
iOS學習之iOS沙盒(sandbox)機制和文件操作(一)
?
?
我們看看如何獲取應用程序沙盒目錄。包括真機的沙盒的目錄。
?
1、獲取程序的Home目錄
?
[cpp]?view plaincopy
NSString?*homeDirectory?=?NSHomeDirectory();??NSLog(@"path:%@",?homeDirectory);?? ?
打印結果:
[cpp]?view plaincopy
2012-06-17?14:00:06.098?IosSandbox[3536:f803]?/Users/rongfzh/Library/Application?Support/iPhone?Simulator/5.1/Applications/3B8EC78A-5EEE-4C2F-B0CB-4C3F02B996D2?? 那在真機上的目錄有是怎么樣的呢?我們看看
2012-06-17 14:25:47.059 IosSandbox[4281:f803]?/var/mobile/Applications/3B8EC78A-5EEE-4C2F-B0CB-4C3F02B996D2
可見,真機上的目錄是/var/mobile/Applications/這個目錄下的,和模擬器不一樣。這個是Home目錄,其他的子目錄和模擬器一樣。
?
2、獲取document目錄
[cpp]?view plaincopy
NSArray?*paths?=?NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,?NSUserDomainMask,?YES);??NSString?*path?=?[paths?objectAtIndex:0];??NSLog(@"path:%@",?path);?? 打印結果
?
?
[cpp]?view plaincopy
2012-06-17?14:00:06.099?IosSandbox[3536:f803]?path:/Users/rongfzh/Library/Application?Support/iPhone?Simulator/5.1/Applications/3B8EC78A-5EEE-4C2F-B0CB-4C3F02B996D2/Documents?? 3、獲取Cache目錄
?
?
[cpp]?view plaincopy
NSArray?*paths?=?NSSearchPathForDirectoriesInDomains(NSCachesDirectory,?NSUserDomainMask,?YES);??NSString?*path?=?[paths?objectAtIndex:0];??NSLog(@"%@",?path);?? 打印結果
[cpp]?view plaincopy
2012-06-17?14:03:50.431?IosSandbox[3628:f803]?/Users/rongfzh/Library/Application?Support/iPhone?Simulator/5.1/Applications/3B8EC78A-5EEE-4C2F-B0CB-4C3F02B996D2/Library/Caches??
4、獲取Library目錄
?
?
[cpp]?view plaincopy
NSArray?*paths?=?NSSearchPathForDirectoriesInDomains(NSLibraryDirectory,?NSUserDomainMask,?YES);??NSString?*path?=?[paths?objectAtIndex:0];??NSLog(@"%@",?path);?? 打印結果
[cpp]?view plaincopy
2012-06-17?14:07:17.544?IosSandbox[3733:f803]?/Users/rongfzh/Library/Application?Support/iPhone?Simulator/5.1/Applications/3B8EC78A-5EEE-4C2F-B0CB-4C3F02B996D2/Library?? 5、獲取Tmp目錄
[cpp]?view plaincopy
NSString?*tmpDir?=?NSTemporaryDirectory();???NSLog(@"%@",?tmpDir);?? 打印結果
?
?
[cpp]?view plaincopy
2012-06-17?14:08:07.824?IosSandbox[3782:f803]?/var/folders/g7/246bh79130zblw0yjjtc55cw0000gn/T/?? 6、寫入文件
[cpp]?view plaincopy
NSArray?*paths?=?NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,?NSUserDomainMask,?YES);??????NSString?*docDir?=?[paths?objectAtIndex:0];??????if?(!docDir)?{??????????NSLog(@"Documents?目錄未找到");??????????????}??????NSArray?*array?=?[[NSArray?alloc]?initWithObjects:@"內容",@"content",nil];??????NSString?*filePath?=?[docDir?stringByAppendingPathComponent:@"testFile.txt"];??????[array?writeToFile:filePath?atomically:YES];?? ?
注:我們在真機上也運行一下,把文件寫入,下一步從真機上把內容讀取出來。
寫入輸入 array ,里面是兩個字符串,一會我們讀出來打印。
寫入我們在程序沙盒目錄下看到文件 testFile.txt
?
打開文件看到的內容是這樣的,是個xml格式的plist文件,數據格式保存了內容。
?
[cpp]?view plaincopy
<?xml?version="1.0"?encoding="UTF-8"?>??<!DOCTYPE?plist?PUBLIC?"-//Apple//DTD?PLIST?1.0//EN"?"http://www.apple.com/DTDs/PropertyList-1.0.dtd">??<plist?version="1.0">??<array>??????<string>內容</string>??????<string>content</string>??</array>??</plist>?? 7、讀取文件
?
?
[cpp]?view plaincopy
NSArray?*paths?=?NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,?NSUserDomainMask,?YES);??????NSString?*docDir?=?[paths?objectAtIndex:0];??????NSString?*filePath?=?[docDir?stringByAppendingPathComponent:@"testFile.txt"];??????NSArray?*array?=?[[NSArray?alloc]initWithContentsOfFile:filePath];??????NSLog(@"%@",?array);?? 打印結果:
?
把上面的文件解析后,把內容打印出來了。
?
[cpp]?view plaincopy
2012-06-17?14:14:46.249?IosSandbox[3918:f803]?(??????"\U5185\U5bb9",??????content??)?? ?
真機上讀取并打印文件路徑:
?
2012-06-17 14:25:47.059 IosSandbox[4281:f803]?/var/mobile/Applications/3B8EC78A-5EEE-4C2F-B0CB-4C3F02B996D2/Documents/testFile.txt
?(
?
? ? "\U5185\U5bb9",
? ? content
)
真機上也能寫入和打印。
著作權聲明:本文由http://blog.csdn.net/totogo2010/原創,歡迎轉載分享。請尊重作者勞動,轉載時保留該聲明和作者博客鏈接,謝謝
?
總結
以上是生活随笔為你收集整理的iOS学习之iOS沙盒(sandbox)机制和文件操作(二)的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。