Ⅰ ios nsfilemanager打不開是怎麼回事
iOS文件管理系統NSFileManager使用詳解
1,找到自己的程序的目錄: NSHomeDirectory() ,目錄結構為:
---Documents/
---"YourAppName.app"
---Library/
---自己創建的文件夾 或 "自己創建的文件"
---tmp/
所以要找到自己程序的Documents文件夾,可以使用[NSHomeDirectory() :@"Documents"];
也可以使用:
NSArray *paths=(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *string=[paths objectAtIndex:0];
兩者功能應該一樣。
2,文件一些主要操作可以通過NSFileManage 來操作,可以通過 [NSFileManger defaultManger] 得到它得實例。
3,使用[aNSString stringByAppendingPathCompnent:aNSString] 來創建文件路徑
4,tmp 目錄我們可以在裡面寫入一些程序運行時需要用得數據,裡面寫入得數據在程序退出後會沒有。
可以通過NSTemporaryDirectory();獲得其路徑。
5,NSFileManager的一些相關操作:
1)創建文件夾:
NSString *myDirectory = [documentDirectory :@"test"];
BOOL ok = [fileManage createDirectoryAtPath:myDirectory withIntermediateDirectories:YES attributes:nil error:&error];
2)取得一個目錄下得所有文件名:(如上面的myDirectory)可用
NSArray *file = [fileManager subpathsOfDirectoryAtPath: myDirectory error:nil];
或
NSArray *files = [fileManager subpathsAtPath: myDirectory ];
或
NSArray *files=[fileManager contentsOfDirectoryAtPath:documentDirectory error:&error];
3)讀取某個文件:
NSData *data = [fileManger contentsAtPath:myFilePath];//myFilePath是包含完整路徑的文件名
或直接用NSData 的類方法:
NSData *data = [NSData dataWithContentOfPath:myFilePath];
4)保存某個文件:
可以用 NSFileManager的
- (BOOL)createFileAtPath:(NSString *)path contents:(NSData *)data attributes:(NSDictionary *)attr;
或 NSData 的
- (BOOL)writeToFile:(NSString *)path atomically:(BOOL)useAuxiliaryFile;
- (BOOL)writeToFile:(NSString *)path options:(NSUInteger)writeOptionsMask error:(NSError **)errorPtr;
5)字元串寫入文件:
[str writeToFile:filePath atomically:YES encoding:NSUTF8StringEncoding error:&error];
[NSString stringWithContentsOfFile...];
6)移動文件:
if ([fileMgr moveItemAtPath:filePath toPath:filePath2 error:&error] != YES)
7)刪除文件:
if ([fileMgr removeItemAtPath:filePath2 error:&error] != YES)
8)判斷是否是文件夾:
BOOL isDir = NO;
[fileManager fileExistsAtPath:path isDirectory:(&isDir)];
if (isDir) { ...}
9)以下代碼用於獲取本機上的文件資源或圖片
獲取文本:
NSFileManager *fileManager=[NSFileManager defaultManager];
NSData *data=[fileManager contentsAtPath:@"/Developer/Documentation/wxWidgets/docs/lgpl.txt"];
NSString *string=[[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@",string);
獲取圖片:
NSData *myData=[fileManager contentsAtPath:@"/Users/ruby/Desktop/Photo1.jpg"];
UIImage *myImage=[UIImage imageWithData:myData];
imageView.image=myImage;
Ⅱ ios怎樣才能把數據存入plist文件中
plist是抄IOS上一種基於xml格式的屬性襲列表,在一些簡單的程序裡面,我們可以用plist文件存儲一些基本的信息用來重復使用。
先來看看plist文件的結構
在XCode裡面新建一個Property List(在Resouce裡面)。
總共有三層結構,最頂層是根節點root,是個Dictionary類型(可選),第二層Presidents,是Array類型,第三層依然是Dictionary類型。
裡面有很多key,以及key對應的值,我們要讀取裡面的數據就是要根據key來讀取。
首先構造一個NSDictionary 對象dict,包含整個plist文件的所有屬性值。然後用objectForKey函數從裡面挑出Presidents這層的數組對象arr,arr數 組每一個單元都是一個Dictionary類型,我們按屬性值找到第一個單元的NSDictionary 對象dic2,整個字典對象下面全部都是String類型的字元串了,因此可以直接用objectForKey函數將key對應的值取出來。
PS: 你需要MAC PRO Xcode