NSFileManager

来源:互联网 发布:计算器在windows 编辑:程序博客网 时间:2024/05/16 04:27


-------------------
1文件管理器的创建
-------------------
 
NSFileManager类的 +defaultManager方法.
返回一个NSFileManager的单例
 
用法:
//创建一个NSFileManager的单例
NSFileManager *fileManager = [NSFileManager defaultManager];
 
-----------------------
2浅度遍历文件和文件夹
-----------------------
 
NSFileManager对象的
-contentsOfDirectoryAtPath:
error:
方法,返回一个NSArray对象的地址.
C语言中的exit( )函数.           //需要导入#include<stdlib.h>头文件.
 
用法:
#define PATH @"/Users/tongwang/Desktop"       //这句要写在函数外面
NSError *error = nil;
//查看目录下的文件和文件夹
NSArray *array = [fileManager contentsOfDirectoryAtPath:PATH error:&error];
//文件读写要报错
if(error)
{
    NSLog(@"
%@",error);
    exit(-1);
}
NSLog(@"
%@",array);
 
-----------------------
3深度遍历文件和文件夹
-----------------------
 
NSFileManager对象的
-subpathsOfDirectoryAtPath:
error:
方法,返回一个NSArray对象的地址.
 
用法:
array = [fileManager subpathsOfDirectoryAtPath:PATH error:&error];
//文件读写要报错
if(error)
{
    NSLog(@"
%@",error);
    exit(-1);
}
NSLog(@"
%@",array);
 
-----------
4创建目录
-----------
 
NSFileManager对象的
-createDirectoryAtPath:         //需要创建的目录名.
withIntermediateDirectories:    //是否创建多级目录.
attributes:                     //目录的属性设置.
error:                          //文件读写报错.
方法.
 
用法:
[fileManager
createDirectoryAtPath:[NSString stringWithFormat:@"
%@/aaa/bbb",PATH]
withIntermediateDirectories:NO    /*如果为NO,创建多级目录时,将会报错.*/
atrributes:nil
error:&error];
 
-----------
5创建文件
-----------
 
NSFileManager对象的
-createFileAtPath:           //只能创建文件,不能创建目录
contents:                   //需要接收一个NSData类型的对象
attributes:                 //文件属性设置
方法.
 
用法:
[fileManager
createFileAtPath:[NSString stringWithFormat:@"
%@/aaa/bbb/file",PATH]
contents:[@"hello world!" dataUsingEncoding:NSUTF8StringEncoding]
attributes:nil];
 
注意:
1.这个方法,只能创建文件,不能创建目录,也没有报错机制.
2.当参数contents:nil为空时,可以创建一个空文件.
 
-----------------
6删除目录和文件
-----------------
 
NSFileManager对象的
-removeItemAtPath:        //目录中有文件,将把文件和目录一起删除
error:                    //文件删除报错
方法.
 
用法:
[fileManager
removeItemAtPath:[NSString stringWithFormat:@"
%@/aaa",PATH]
error:&error];
//删除文件报错
if (error) {
    NSLog(@"
%@",error);
    exit(-1);
}
//技巧,把报错抽取为宏定义
#define ERROR(a) if(a){NSLog(@"
%@",a);exit(-1);}
ERROR(error)
 
注意:
这种删除,相当于使用rm –rf命令.
 
-----------------
7拷贝目录和文件
-----------------
 
NSFileManager对象的
-copyItemAtPath:         //源目录或文件
toPath:                  //目标目录或文件
error:                   //文件复制报错
 
用法:
fileManager copyItemAtPath:[NSString stringWithFormat:@"
%@/TestOC",PATH]
toPath:[NSString stringWithFormat:@"
%@/newPath",PATH]
error:&error];
//复制出错
if (error) {
    NSLog(@"
%@",error);                  //目标文件或目录名已存在,将会报错.
    exit(-1);
};
 
注意:
如果存在同名的目录或文件,将会报错.
 
-----------------
8移动目录和文件
-----------------
 
NSFileManager对象的
-moveItemAtPath:            //源目录或文件
toPath:                     //目标目录或文件
error:                      //移动出错
方法.
 
用法:
[fileManager moveItemAtPath:[NSString stringWithFormat:@"
%@/newPath.txt",PATH]
toPath:[NSString stringWithFormat:@"
%@/111/aaa",PATH]
error:&error];
//移动出错
if()
{
    NSLog(@"
%@",error);              //目标文件或目录名已存在,将会报错.
    exit(-1);
}
注意:
1.这个方法,可以给目录或文件重命名.
2.目标文件或目录名已存在,将会报错.
 
-----------------------------------------
0 0
原创粉丝点击