OC-054.文件管理器 NSFileManager类
2015-12-17 14:02
495 查看
NSFileManager类 :是一个用于管理文件的类。
下面代码介绍了创建和一些它的方法:
#import <Foundation/Foundation.h>
//NSFileManager是一个单例对象类
int main(int argc, const char * argv[]) {
@autoreleasepool {
//1.获取NSFileManager单例对象, default:系统默认值
NSFileManager *fm = [NSFileManager defaultManager];
NSString *path = @"/Users/mrlong/desktop/铃声";
//2.判断文件或文件夹是否存在 Exists:存在
BOOL isExists = [fm fileExistsAtPath:path];
if (isExists) {
NSLog(@"文件存在");
}
//3.判断是否为文件夹
BOOL isDir = NO; //需创建一个bool储存是否为文件夹
//把isDir的地址放入,需加&。
isExists = [fm fileExistsAtPath:path isDirectory:&isDir];
if (isExists) {
NSLog(@"存在 ,%d",isDir); //判断是否为文件夹,是就打印1,不是打印0
}
//4.判断文件的权限
//4.1是否可读
BOOL isReadable = [fm isReadableFileAtPath:path];
if (isReadable) {
NSLog(@"可读");
}
//4.2是否可写
BOOL isWritable = [fm isWritableFileAtPath:path];
if (isWritable) {
NSLog(@"可写");
}
//5.获取文件或者目录的属性,返回一个字典
NSError *error = nil;
//attributes:...属性 item:项目、条款
NSDictionary *dic = [fm attributesOfItemAtPath:path error:&error];
if (!error) {
NSLog(@"%@",dic);
}
//6.获取文件大小
// NSNumber *num = dic[@"NSFileSize"]; 这里是字典通过键取值
NSNumber *num = dic[NSFileSize];
NSLog(@"%@",num);
//7.获取文件创建时间---详情看字典内部
NSDate *date = dic[NSFileCreationDate];
NSLog(@"%@",date);
//8.拷贝文件
NSString *copyTo = @"/Users/mrlong/desktop/new";
//拷贝的时候确保没有相同的文件夹存在
BOOL isOk = [fm copyItemAtPath:path toPath:copyTo error:&error];
if (isOk) {
NSLog(@"拷贝成功");
}else {
NSLog(@"%@",error);
}
//9.剪切文件---会删除原来的文件夹,把里面的内容剪切进新的文件夹内
NSString *moveTo = @"/Users/mrlong/desktop/铃声新";
BOOL isOk2 = [fm moveItemAtPath:path toPath:moveTo error:&error];
if (isOk2) {
NSLog(@"剪切成功");
}else {
NSLog(@"%@",error);
}
//10.获取NSFileManager单例对象
NSFileManager *fmg = [NSFileManager defaultManager];
//创建目录/Users/apple/Desktop/hhh 通过运行得出创建之前会判断是否存在这个文件夹,如果已经有了,(不知道是也算创建按成功,还是会替换原有文件夹)
NSString *pathNew = @"/Users/mrlong/desktop/hello";
// NSError *error = nil;
//这个方法只能创建文件目录(文件夹)
//withIntermediateDirectories:中间目录要不要创建 写NO是不允许在文件夹内部在创建文件夹
BOOL isSuc = [fmg createDirectoryAtPath:pathNew withIntermediateDirectories:YES attributes:nil error:&error];
if (isSuc) {
NSLog(@"创建成功");
}else{
NSLog(@"%@",error);
}
NSString *pathFile = @"/Users/mrlong/desktop/hello/hello.txt";
NSString *str = @"龙叔叔好帅";
//NSData OC中用于保存二进制数据的,对应图片、视频这些类型的文件只能使用NSData来保存
NSData *data = [str dataUsingEncoding:NSUTF8StringEncoding];
NSLog(@"%@",data);
//这个方法只能创建文件,如果有有同名的,会覆盖同名的文件
isSuc = [fmg createFileAtPath:pathFile contents:data attributes:nil];
if (isSuc) {
NSLog(@"文件创建成功");
}else{
NSLog(@"%@",error);
}
}
return 0;
}
下面代码介绍了创建和一些它的方法:
#import <Foundation/Foundation.h>
//NSFileManager是一个单例对象类
int main(int argc, const char * argv[]) {
@autoreleasepool {
//1.获取NSFileManager单例对象, default:系统默认值
NSFileManager *fm = [NSFileManager defaultManager];
NSString *path = @"/Users/mrlong/desktop/铃声";
//2.判断文件或文件夹是否存在 Exists:存在
BOOL isExists = [fm fileExistsAtPath:path];
if (isExists) {
NSLog(@"文件存在");
}
//3.判断是否为文件夹
BOOL isDir = NO; //需创建一个bool储存是否为文件夹
//把isDir的地址放入,需加&。
isExists = [fm fileExistsAtPath:path isDirectory:&isDir];
if (isExists) {
NSLog(@"存在 ,%d",isDir); //判断是否为文件夹,是就打印1,不是打印0
}
//4.判断文件的权限
//4.1是否可读
BOOL isReadable = [fm isReadableFileAtPath:path];
if (isReadable) {
NSLog(@"可读");
}
//4.2是否可写
BOOL isWritable = [fm isWritableFileAtPath:path];
if (isWritable) {
NSLog(@"可写");
}
//5.获取文件或者目录的属性,返回一个字典
NSError *error = nil;
//attributes:...属性 item:项目、条款
NSDictionary *dic = [fm attributesOfItemAtPath:path error:&error];
if (!error) {
NSLog(@"%@",dic);
}
//6.获取文件大小
// NSNumber *num = dic[@"NSFileSize"]; 这里是字典通过键取值
NSNumber *num = dic[NSFileSize];
NSLog(@"%@",num);
//7.获取文件创建时间---详情看字典内部
NSDate *date = dic[NSFileCreationDate];
NSLog(@"%@",date);
//8.拷贝文件
NSString *copyTo = @"/Users/mrlong/desktop/new";
//拷贝的时候确保没有相同的文件夹存在
BOOL isOk = [fm copyItemAtPath:path toPath:copyTo error:&error];
if (isOk) {
NSLog(@"拷贝成功");
}else {
NSLog(@"%@",error);
}
//9.剪切文件---会删除原来的文件夹,把里面的内容剪切进新的文件夹内
NSString *moveTo = @"/Users/mrlong/desktop/铃声新";
BOOL isOk2 = [fm moveItemAtPath:path toPath:moveTo error:&error];
if (isOk2) {
NSLog(@"剪切成功");
}else {
NSLog(@"%@",error);
}
//10.获取NSFileManager单例对象
NSFileManager *fmg = [NSFileManager defaultManager];
//创建目录/Users/apple/Desktop/hhh 通过运行得出创建之前会判断是否存在这个文件夹,如果已经有了,(不知道是也算创建按成功,还是会替换原有文件夹)
NSString *pathNew = @"/Users/mrlong/desktop/hello";
// NSError *error = nil;
//这个方法只能创建文件目录(文件夹)
//withIntermediateDirectories:中间目录要不要创建 写NO是不允许在文件夹内部在创建文件夹
BOOL isSuc = [fmg createDirectoryAtPath:pathNew withIntermediateDirectories:YES attributes:nil error:&error];
if (isSuc) {
NSLog(@"创建成功");
}else{
NSLog(@"%@",error);
}
NSString *pathFile = @"/Users/mrlong/desktop/hello/hello.txt";
NSString *str = @"龙叔叔好帅";
//NSData OC中用于保存二进制数据的,对应图片、视频这些类型的文件只能使用NSData来保存
NSData *data = [str dataUsingEncoding:NSUTF8StringEncoding];
NSLog(@"%@",data);
//这个方法只能创建文件,如果有有同名的,会覆盖同名的文件
isSuc = [fmg createFileAtPath:pathFile contents:data attributes:nil];
if (isSuc) {
NSLog(@"文件创建成功");
}else{
NSLog(@"%@",error);
}
}
return 0;
}
相关文章推荐
- hdu-1157 Who's in the Middle
- MT6755 平台手机皮套驱动实现
- canvas 响应鼠标火焰喷射
- Java获取当前路径
- hadoop Unable to load native-hadoop library
- activity 几种常见切换动画
- hdu-1097 A hard puzzle
- 中级篇——背包问题3(多重背包)
- pyramid在apache+mod_wsgi下的运行配置
- JQuery easyUI datagrid 排序,使用sorter自定义排序
- Java并发编程:线程池的使用
- hdu-1076 An Easy Task
- 欢迎使用CSDN-markdown编辑器
- bootstrap菜单、按钮及导航学习笔记5-1
- Android Studio 使用笔
- android 调用系统相机拍照 获取原图
- E9天嵌i.mx6q的nfs和tftp环境搭建
- hdu-1061 Rightmost Digit
- js代码判断浏览器类型
- HTML5之canvas剪切图片