[objective-c]—六十六、基础框架(二十四)文件操作-目录操作
2012-11-20 13:30
399 查看
下面表格中的措施 适用于NSFileManager这类物件,可以用来进行 目录操作:
下面的程序 示范了 如何进行 基本的目录操作:
运行 这个程序后,可以得到 这样的结果:
2012-05-10 13:54:52.615 Sample[1256:707] 当前目录路径为:/Users/Zijin/Library/Developer/Xcode/DerivedData/Sample-bwtvtehgdvdkzgaqfkwvluuhrhso/Build/Products/Debug
2012-05-10 13:54:52.618 Sample[1256:707] 当前目录路径为:/Users/Zijin/Library/Developer/Xcode/DerivedData/Sample-bwtvtehgdvdkzgaqfkwvluuhrhso/Build/Products/Debug/newDirectory
2012-05-10 13:54:52.619 Sample[1256:707] 所有操作成功完成。
Program ended with exit code: 0
在可执行文件所在的目录当中,我们 可以看到 这样的情况:
![](http://www.tongwenguan.com/wp-content/uploads/2012/05/Snip20120510_2.png)
在这个程序当中
path=[myFileManager currentDirectoryPath];
这行语句 对 myFileManager这个物件 采取了 currentDirectoryPath这项措施,将 当前目录的路径 作为结果 存储 在变量path当中。接着 将 当前目录的路径 显示出来。
然后
[myFileManager createDirectoryAtPath:directoryName attributes:nil]
这行语句 对 myFileManager这个物件 采取了 createDirectoryAtPath:attributes:这项措施,创建了 一个新的目录,而 目录的名称 则为 参数directoryName中设定的myDirectory。
接着的
[myFileManager movePath:directoryName toPath:@"newDirectory" handler:nil]
这行语句 对 myFileManager这个物件 采取了 movePath:toPath:handler:这项措施,将 第一个参数代表的目录 移动 到当前的目录,并且 命名为 newDirectory。由于 移动的目标目录 就是 当前目录,所以 这行语句 就是 给 目录 重命名。
movePath:toPath:handler:这项措施 也可以将 整个目录(包括 其中的内容)从文件系统中的一个位置 移动 到另外一个位置。
最后的
[myFileManager changeCurrentDirectoryPath:@"newDirectory"]
这行语句 对myFileManager这个物件 采取了 changeCurrentDirectoryPath:这项措施,将 当前目录 由可执行文件所在的目录 更换为 参数中的newDirectory这个目录。
#import <Foundation/NSObject.h>
#import <Foundation/NSString.h>
#import <Foundation/NSFileManager.h>
#import <Foundation/NSAutoreleasePool.h>
int main(int argc,const char *argv[])
{
NSAutoreleasePool *pool=[[NSAutoreleasePool alloc] init];
NSString *directoryName=@"myDirectory";
NSString *path;
NSFileManager *myFileManager;
myFileManager=[NSFileManager defaultManager];
//获取当前目录,并且显示出来
path=[myFileManager currentDirectoryPath];
NSLog(@"当前目录路径为:%@",path);
//在当前目录当中创建一个新目录
if([myFileManager createDirectoryAtPath:directoryName attributes:nil]==NO)
{
NSLog(@"无法创建目录!");
return 1;
}
//将新建的目录重命名为newDirectory
if([myFileManager movePath:directoryName toPath:@"newDirectory" handler:nil]==NO)
{
NSLog(@"目录重命名失败!");
return 2;
}
//将当前目录由可执行文件所在目录更换到newDirectory这个目录
if([myFileManager changeCurrentDirectoryPath:@"newDirectory"]==NO)
{
NSLog(@"更换目录失败!");
return 3;
}
//将更换后的当前目录路径显示出来,以验证操作是否成功e
path=[myFileManager currentDirectoryPath];
NSLog(@"当前目录路径为:%@",path);
NSLog(@"所有操作成功完成。");
[p
2012-05-10
13:54:52.615 Sample[1256:707]
当前目录路径为:/Users/Zijin/Library/Developer/Xcode/DerivedData/Sample-
bwtvtehgdvdkzgaqfkwvluuhrhso/Build/Products/Debug
2012-05-10 13:54:52.618 Sample[1256:707]
当前目录路径为:/Users/Zijin/Library/Developer/Xcode/DerivedData/Sample-
bwtvtehgdvdkzgaqfkwvluuhrhso/Build/Products/Debug/newDirectory
2012-05-10 13:54:52.619 Sample[1256:707] 所有操作成功完成。
Program ended with exit code: 0
措施名称 | 描述 |
-(NSString *)currentDirectoryPath | 获取当前目录的路径 |
-(BOOL)changeCurrentDirectoryPath:path | 将当前目录的路径更换到path |
-(BOOL)copyPath:from toPath:to handler:handler | 将目录from复制到to,to所代表的目录不能事先存在 |
-(BOOL)createDirectoryAtPath:path attributes:attr | 创建一个新目录 |
-(BOOL)fileExistsAtPath:path isDirectory:(BOOL *)flag | 检查path是否是目录 |
-(NSArray *)directoryContentsAtPath:path | 将目录内容列举出来 |
-(NSDirectoryEnumerator *)enumeratorAtPath:path | 枚举目录内容 |
-(BOOL)removeFileAtPath:path handler:handler | 删除空目录 |
-(BOOL)movePath:from toPath:to handler:handler | 重命名或者移动目录,to代表的目录不能事先存在。 |
#import <Foundation/NSObject.h> #import <Foundation/NSString.h> #import <Foundation/NSFileManager.h> #import <Foundation/NSAutoreleasePool.h> int main(int argc,const char *argv[]) { NSAutoreleasePool *pool=[[NSAutoreleasePool alloc] init]; NSString *directoryName=@"myDirectory"; NSString *path; NSFileManager *myFileManager; myFileManager=[NSFileManager defaultManager]; //获取当前目录,并且显示出来 path=[myFileManager currentDirectoryPath]; NSLog(@"当前目录路径为:%@",path); //在当前目录当中创建一个新目录 if([myFileManager createDirectoryAtPath:directoryName attributes:nil]==NO) { NSLog(@"无法创建目录!"); return 1; } //将新建的目录重命名为newDirectory if([myFileManager movePath:directoryName toPath:@"newDirectory" handler:nil]==NO) { NSLog(@"目录重命名失败!"); return 2; } //将当前目录由可执行文件所在目录更换到newDirectory这个目录 if([myFileManager changeCurrentDirectoryPath:@"newDirectory"]==NO) { NSLog(@"更换目录失败!"); return 3; } //将更换后的当前目录路径显示出来,以验证操作是否成功e path=[myFileManager currentDirectoryPath]; NSLog(@"当前目录路径为:%@",path); NSLog(@"所有操作成功完成。"); [pool drain]; return 0; }
运行 这个程序后,可以得到 这样的结果:
2012-05-10 13:54:52.615 Sample[1256:707] 当前目录路径为:/Users/Zijin/Library/Developer/Xcode/DerivedData/Sample-bwtvtehgdvdkzgaqfkwvluuhrhso/Build/Products/Debug
2012-05-10 13:54:52.618 Sample[1256:707] 当前目录路径为:/Users/Zijin/Library/Developer/Xcode/DerivedData/Sample-bwtvtehgdvdkzgaqfkwvluuhrhso/Build/Products/Debug/newDirectory
2012-05-10 13:54:52.619 Sample[1256:707] 所有操作成功完成。
Program ended with exit code: 0
在可执行文件所在的目录当中,我们 可以看到 这样的情况:
![](http://www.tongwenguan.com/wp-content/uploads/2012/05/Snip20120510_2.png)
在这个程序当中
path=[myFileManager currentDirectoryPath];
1 | path=[myFileManager currentDirectoryPath]; |
然后
[myFileManager createDirectoryAtPath:directoryName attributes:nil]
1 | [myFileManager createDirectoryAtPath:directoryName attributes:nil] |
接着的
[myFileManager movePath:directoryName toPath:@"newDirectory" handler:nil]
1 | [myFileManager movePath:directoryName toPath:@"newDirectory" handler:nil] |
movePath:toPath:handler:这项措施 也可以将 整个目录(包括 其中的内容)从文件系统中的一个位置 移动 到另外一个位置。
最后的
[myFileManager changeCurrentDirectoryPath:@"newDirectory"]
1 | [myFileManager changeCurrentDirectoryPath:@"newDirectory"] |
#import <Foundation/NSObject.h>
#import <Foundation/NSString.h>
#import <Foundation/NSFileManager.h>
#import <Foundation/NSAutoreleasePool.h>
int main(int argc,const char *argv[])
{
NSAutoreleasePool *pool=[[NSAutoreleasePool alloc] init];
NSString *directoryName=@"myDirectory";
NSString *path;
NSFileManager *myFileManager;
myFileManager=[NSFileManager defaultManager];
//获取当前目录,并且显示出来
path=[myFileManager currentDirectoryPath];
NSLog(@"当前目录路径为:%@",path);
//在当前目录当中创建一个新目录
if([myFileManager createDirectoryAtPath:directoryName attributes:nil]==NO)
{
NSLog(@"无法创建目录!");
return 1;
}
//将新建的目录重命名为newDirectory
if([myFileManager movePath:directoryName toPath:@"newDirectory" handler:nil]==NO)
{
NSLog(@"目录重命名失败!");
return 2;
}
//将当前目录由可执行文件所在目录更换到newDirectory这个目录
if([myFileManager changeCurrentDirectoryPath:@"newDirectory"]==NO)
{
NSLog(@"更换目录失败!");
return 3;
}
//将更换后的当前目录路径显示出来,以验证操作是否成功e
path=[myFileManager currentDirectoryPath];
NSLog(@"当前目录路径为:%@",path);
NSLog(@"所有操作成功完成。");
[p
2012-05-10
13:54:52.615 Sample[1256:707]
当前目录路径为:/Users/Zijin/Library/Developer/Xcode/DerivedData/Sample-
bwtvtehgdvdkzgaqfkwvluuhrhso/Build/Products/Debug
2012-05-10 13:54:52.618 Sample[1256:707]
当前目录路径为:/Users/Zijin/Library/Developer/Xcode/DerivedData/Sample-
bwtvtehgdvdkzgaqfkwvluuhrhso/Build/Products/Debug/newDirectory
2012-05-10 13:54:52.619 Sample[1256:707] 所有操作成功完成。
Program ended with exit code: 0
相关文章推荐
- [objective-c]—六十六、基础框架(二十四)文件操作-目录操作
- 六十六、基础框架(二十四)文件操作-目录操作
- 基础框架-文件操作-目录操作
- 六十七、基础框架(二十五)文件操作-列举 目录内容
- Objective-C文件和目录操作,IOS文件操作,NSFileManager使用文件操作
- linux基础教程-----目录文件操作(1)
- 六十三、基础框架(二十一)文件操作-NSFileManager这类物件
- 【跟随万一老师的足迹】查找目录下文件,在万一老师的基础上升级下,支持多文件查找 - 文件操作(一)
- Windows程序设计零基础自学_14_Windows文件和目录操作
- linux基础命令学习(二)文件和目录操作
- Python基础之IO文件目录的操作
- Linux基础入门(三、目录结构及基本文件操作)
- python基础-文件目录操作
- 六十四、基础框架(二十二)文件操作-基本文件操作
- Python学习:IO基础(2):对文件目录的操作
- Objective-C文件和目录操作,IOS文件操作,NSFileManager使用文件操作
- (大数据工程师学习路径)第一步 Linux 基础入门----目录结构及文件基本操作
- linux入门-菜鸟级操作2-基础的目录和文件的操作
- Linux基础命令操作(二)--文件权限与目录配置
- Java-基础 文件操作IO 在指定目录中创建文件