博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ios文件操作
阅读量:5867 次
发布时间:2019-06-19

本文共 4193 字,大约阅读时间需要 13 分钟。

hot3.png

1.NSFileManager:单例,对文件进行操作

    [NSFileManager defaultManager]

2.UIImage转NSData

    NSData *imageData = UIImagePNGRepresentation(image);

3.NSHomeDirectory:获取应用的主路径

    NSString *path = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents/pic"];

4.fileExistsAtPath判断路径下是否存在这个文件

    BOOL isExit = [[NSFileManager defaultManager] fileExistsAtPath:path];

5.createFileAtPath:在路径上创建文件

    [[NSFileManager defaultManager] createFileAtPath:path contents:nil attributes:nil];

6.createDirectoryAtPath:在路径上创建目录

    [[NSFileManager defaultManager] createDirectoryAtPath:dir2Path         withIntermediateDirectories:YES attributes:nil error:nil];

7.将文件转化为NSData

    NSData *data = [NSData dataWithContentsOfFile:path];

8.获得应用的Document目录

    NSString *docPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,         NSUserDomainMask, YES) lastObject];

9.moveItemAtPath:toPath:将第一个路径上的文件移动到另一个路径

    [[NSFileManager defaultManager] moveItemAtPath:path toPath:[dir1Path stringByAppendingPathComponent:@"pic1"]         error:&errorMsg];

10.copyItemAtPath:toPath:将第一个路径上的文件拷贝粘贴到另一个路径上

    [[NSFileManager defaultManager] copyItemAtPath:[dir1Path stringByAppendingPathComponent:@"pic1"]         toPath:[dir2Path stringByAppendingPathComponent:@"pic2"] error:&errorMsg];

11.removeItemAtPath:删除文件

    [[NSFileManager defaultManager] removeItemAtPath:dir1Path error:nil];

小例子:

@interface ViewController ()@property (nonatomic, strong) NSFileManager *fileManager;@end///Users/a/Library/Developer/CoreSimulator/Devices/4DF9F8F0-E0BD-4EFC-AC49-340DAE285D62/data/Containers/Data/Application/77EA378C-8B16-424E-8607-456EAC48EC7A/Documents/pic@implementation ViewController            - (void)viewDidLoad {    [super viewDidLoad];     //获取系统提供文件管理器 单例    self.fileManager = [NSFileManager defaultManager];        //读取图片    UIImage *image = [UIImage imageNamed:@"4.jpg"];        //UIImage -> NSData//二进制    NSData *imageData = UIImagePNGRepresentation(image);//    NSLog(@"%@", imageData);    //创建文件    NSString *path = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents/pic"];//添加的是路径的一部分    NSLog(@"%@", path);        //创建文件    if (![self.fileManager fileExistsAtPath:path]) {        //文件不存在        //创建一个空的文件        [self.fileManager createFileAtPath:path contents:nil attributes:nil];                //写入内容        [imageData writeToFile:path atomically:YES];    }        //读取文件    if ([self.fileManager fileExistsAtPath:path]) {        NSData *data = [NSData dataWithContentsOfFile:path];                UIImage *image = [UIImage imageWithData:data];        self.view.backgroundColor = [UIColor colorWithPatternImage:image];    }        //创建两个目录:目录1 目录2    NSString *docPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];//自动寻找可操作的目录,但是只有一个//    NSLog(@"%@", dir1Path);        //两个方法不同    NSString *dir1Path = [docPath stringByAppendingString:@"/目录1"];    NSString *dir2Path = [docPath stringByAppendingPathComponent:@"目录2"];//    NSLog(@"%@, %@", dir1Path, dir2Path);    //    BOOL *isExist;    if (![self.fileManager fileExistsAtPath:dir1Path]) {        //不存在,创建        [self.fileManager createDirectoryAtPath:dir1Path withIntermediateDirectories:YES attributes:nil error:nil];    }        if (![self.fileManager fileExistsAtPath:dir2Path]) {        //不存在,创建        [self.fileManager createDirectoryAtPath:dir2Path withIntermediateDirectories:YES attributes:nil error:nil];    }        //将Documents/pic 移动到Documents/目录1/pic1,移动的时候还要设置文件名    NSError *errorMsg = NULL;    [self.fileManager moveItemAtPath:path toPath:[dir1Path stringByAppendingPathComponent:@"pic1"] error:&errorMsg];    if (errorMsg) {        //有错误信息        NSLog(@"errorMsg:%@", errorMsg);    }else{        NSLog(@"move ok");    }        //将目录1/pic1 拷贝copy 到目录2/pic1    [self.fileManager copyItemAtPath:[dir1Path stringByAppendingPathComponent:@"pic1"] toPath:[dir2Path stringByAppendingPathComponent:@"pic2"] error:&errorMsg];    if (errorMsg) {        //有错误信息        NSLog(@"errorMsg:%@", errorMsg);    }else{        NSLog(@"copy ok");    }        //删除文件    [self.fileManager removeItemAtPath:dir1Path error:nil];}@end

转载于:https://my.oschina.net/u/1999967/blog/310327

你可能感兴趣的文章
htpasswd
查看>>
微软整合实验(七):布署Exchange2010 Mailbox高可用(DAG)
查看>>
spring定时器----JobDetailBean
查看>>
我的友情链接
查看>>
XP下如何删除附件中的游戏组件
查看>>
我的友情链接
查看>>
emma的几个不足之处
查看>>
Java工具类——UUIDUtils
查看>>
使用Node搭建reactSSR服务端渲染架构
查看>>
文件缓存
查看>>
转 博弈类题目小结(hdu,poj,zoj)
查看>>
Java NIO学习笔记八 Pipe
查看>>
远程协助
查看>>
Scrum实施日记 - 一切从零开始
查看>>
关于存储过程实例
查看>>
配置错误定义了重复的“system.web.extensions/scripting/scriptResourceHandler” 解决办法...
查看>>
AIX 7.1 install python
查看>>
PHP盛宴——经常使用函数集锦
查看>>
重写 Ext.form.field 扩展功能
查看>>
Linux下的搜索查找命令的详解(locate)
查看>>