Ⅰ 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