ios NSFileManager 用法详解

转自:http://blog.csdn.net/ios_che/article/details/7287266

iPhone文件系统NSFileManager讲解是本文要介绍的内容,主要是通过iphone文件系统来学习NSFileManager的使用方法,具体内容来看本文详解。

iPhone文件系统:创建、重命名以及删除文件,NSFileManager中包含了用来查询单词库目录、创建、重命名、删除目录以及获取/设置文件属性的方法(可读性,可编写性等等)。

每个程序都会有它自己的沙盒,通过它你可以阅读/编写文件。写入沙盒的文件在程序的进程中将会保持稳定,即便实在程序更新的情况下。

如下所示,你可以在沙盒中定位文件目录:

  1. //对于错误信息
  2. NSError *error;
  3. // 创建文件管理器
  4. NSFileManager *fileMgr = [NSFileManagerdefaultManager];
  5. //指向文件目录
  6. NSString *documentsDirectory= [NSHomeDirectory()
  7. stringByAppendingPathComponent:@"Documents"];
  8. //创建一个目录
  9. [[NSFileManager defaultManager]   createDirectoryAtPath: [NSString stringWithFormat:@"%@/myFolder", NSHomeDirectory()] attributes:nil];

创建一个文件

现在我们已经有了文件目录,我们就能使用这个路径在沙盒中创建一个新文件并编写一段代码:

  1. // File we want to create in the documents directory我们想要创建的文件将会出现在文件目录中
  2. // Result is: /Documents/file1.txt结果为:/Documents/file1.txt
  3. NSString *filePath= [documentsDirectory
  4. stringByAppendingPathComponent:@"file1.txt"];
  5. //需要写入的字符串
  6. NSString *str= @"iPhoneDeveloper Tips\nhttp://iPhoneDevelopTips,com";
  7. //写入文件
  8. [str writeToFile:filePath atomically:YES
  9. encoding:NSUTF8StringEncoding error:&error];
  10. //显示文件目录的内容
  11. NSLog(@"Documentsdirectory: %@",
  12. [fileMgr contentsOfDirectoryAtPath:documentsDirectoryerror:&error]);

我们为想要创建的文件构建一条路径(file1.txt),初始化一个字符串来写入文件,并列出目录。最后一行显示了在我们创建文件之后出现在文件目录下的一个目录列表:

对一个文件重命名

想要重命名一个文件,我们需要把文件移到一个新的路径下。下面的代码创建了我们所期望的目标文件的路径,然后请求移动文件以及在移动之后显示文件目录。

  1. //通过移动该文件对文件重命名
  2. NSString *filePath2= [documentsDirectory
  3. stringByAppendingPathComponent:@"file2.txt"];
  4. //判断是否移动
  5. if ([fileMgr moveItemAtPath:filePath toPath:filePath2 error:&error] != YES)
  6. NSLog(@"Unable to move file: %@", [error localizedDescription]);
  7. //显示文件目录的内容
  8. NSLog(@"Documentsdirectory: %@",
  9. [fileMgr contentsOfDirectoryAtPath:documentsDirectoryerror:&error]);

在移动了文件之后,输出结果应该如下图所示:

删除一个文件

为了使这个技巧完整,让我们再一起看下如何删除一个文件:

  1. //在filePath2中判断是否删除这个文件
  2. if ([fileMgr removeItemAtPath:filePath2 error:&error] != YES)
  3. NSLog(@"Unable to delete file: %@", [error localizedDescription]);
  4. //显示文件目录的内容
  5. NSLog(@"Documentsdirectory: %@",
  6. [fileMgr contentsOfDirectoryAtPath:documentsDirectoryerror:&error]);

一旦文件被删除了,正如你所预料的那样,文件目录就会被自动清空:

这些示例能教你的,仅仅只是文件处理上的一些皮毛。想要获得更全面、详细的讲解,你就需要掌握NSFileManager文件的知识。

在开发iPhone程序时,有时候要对文件进行一些操作。而获取某一个目录中的所有文件列表,是基本操作之一。通过下面这段代码,就可以获取一个目录内的文件及文件夹列表。

  1. NSFileManager *fileManager = [NSFileManager defaultManager];
  2. //在这里获取应用程序Documents文件夹里的文件及文件夹列表
  3. NSArray *documentPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
  4. NSString *documentDir = [documentPaths objectAtIndex:0];
  5. NSError *error = nil;
  6. NSArray *fileList = [[NSArray alloc] init];
  7. //fileList便是包含有该文件夹下所有文件的文件名及文件夹名的数组
  8. fileList = [fileManager contentsOfDirectoryAtPath:documentDir error:&error];

以下这段代码则可以列出给定一个文件夹里的所有子文件夹名

  1. NSMutableArray *dirArray = [[NSMutableArray alloc] init];
  2. BOOL isDir = NO;
  3. //在上面那段程序中获得的fileList中列出文件夹名
  4. for (NSString *file in fileList) {
  5. NSString *path = [documentDir stringByAppendingPathComponent:file];
  6. [fileManager fileExistsAtPath:path isDirectory:(&isDir)];
  7. if (isDir) {
  8. [dirArray addObject:file];
  9. }
  10. isDir = NO;
  11. }
  12. NSLog(@"Every Thing in the dir:%@",fileList);
  13. NSLog(@"All folders:%@",dirArray);

小结:关于iPhone文件系统NSFileManager讲解的内容介绍完了,希望通过本文的学习能对你有所帮助!

时间: 2024-10-05 23:26:58

ios NSFileManager 用法详解的相关文章

IOS UIButton用法详解

这段代码动态的创建了一个UIButton,并且把相关常用的属性都列举了.希望对大家有用.   //这里创建一个圆角矩形的按钮UIButton *button1 = [UIButton buttonWithType:UIButtonTypeRoundedRect]; // 能够定义的button类型有以下6种,// typedef enum {// UIButtonTypeCustom = 0, 自定义风格// UIButtonTypeRoundedRect, 圆角矩形 // UIButtonTy

一步一步学ios UITextView(多行文本框)控件的用法详解(五5.8)

本文转载至 http://wuchaorang.2008.blog.163.com/blog/static/48891852201232014813990/ 1.创建并初始化 创建UITextView的文件,并在.h文件中写入如下代码: [csharp] view plaincopy #import <UIKit/UIKit.h> @interface TextViewController : UIViewController <UITextViewDelegate> { UITe

AFNetwork 作用和用法详解

AFNetworking是一个轻量级的iOS网络通信类库.它建立在NSURLConnection和NSOperation等类库的基础上,让很多网络通信功能的实现变得十分简单.它支持HTTP请求和基于REST的网络服务(包括GET.POST. PUT.DELETE等).支持ARC. Github地址:https://github.com/AFNetworking/AFNetworking // // MJViewController.m // 03.AFN演练 // // Created by a

IOS开发 Blocks详解(转)

IOS开发 Blocks详解(转) (2013-10-14 16:41:54) 从Mac OS X 10.6以及iOS 4开始,苹果在GCC和Clang编译器中为C语言引入了一个新扩展:Blocks,使得程序员可以在C.Objective-C.C++和Objective-C中使用闭包.Blocks有点像函数,但是它可以在其它函数或方法中进行声明和定义,同时它还是匿名的(匿名函数),并可以捕获其所在作用域中的变量(闭包特性). Blocks的语法 Blocks和C语言中的函数指针有点类似,如果你了

UIWebView用法详解及代码分享

今天加入一个QQ群,也算是一个圈子,群主的要求是满足他的三个条件.经过与群主的沟通,终于得到通过,顺利加入. 群主是一个93年的小伙,而且是河南的老乡.没想到小伙子这么有号召力.我也是偶然在我的空间发现他的,看他每天发的文章,还挺有意思. 90后的小伙子都这么厉害了,有什么理由不努力奋斗呢!多加入以下圈子,认识一下身边的牛人.说不定会有意外的收获. 今天我们来详细UIWebView用法.UIWebView是iOS内置的浏览器控件,可以浏览网页.打开文档等 能够加载html/htm.pdf.doc

iOS开发- UICollectionView详解+实例

iOS开发- UICollectionView详解+实例 本章通过先总体介绍UICollectionView及其常用方法,再结合一个实例,了解如何使用UICollectionView. UICollectionView 和 UICollectionViewController 类是iOS6 新引进的API,用于展示集合视图,布局更加灵活,可实现多列布局,用法类似于UITableView 和 UITableViewController 类. 使用UICollectionView 必须实现UICol

css3中font-face属性的用法详解

@font-face是CSS3中的一个模块,他主要是把自己定义的Web字体嵌入到你的网页中,随着@font-face模块的出现,我们在Web的开发中使用字体不怕只能使用Web安全字体,你们当中或许有许多人会不自然的问,这样的东西IE能支持吗?当我告诉大家@font-face这个功能早在IE4就支持了你肯定会感到惊讶.我的Blog就使用了许多这样的自定义Web字体,比如说首页的Logo,Tags以及页面中的手写英文体,很多朋友问我如何使用,能让自己的页面也支持这样的自定义字体,一句话这些都是@fo

js的offsetParent属性用法详解

js的offsetParent属性用法详解:此属性是javascript中较为常用的属性,对于它的良好掌握也是非常有必要的,下面就通过代码实例介绍一下它的用法,希望能够给需要的朋友带来一定的帮助.一.基本介绍:此属性可以返回距离指定元素最近的采用定位(position属性值为fixed.relative或者absolute)父级元素,如果父级元素中没有采用定位的元素,则返回body对象的引用.语法结构: obj.offsetParent 二.代码实例: <!DOCTYPE html> <

python处理word文件:win32com用法详解

目标:用python处理doc文件 方法:引入win32com模块 ************************************************************************** 一.安装 ************************************************************************** 首先要先下载安装win32com模块(起先在linux下装不成功,后在windows下面成功了...) 下载地址:http