iPhone文件系统:创建、重命名以及删除文件
NSFileManager中包含了用来查询单词库目录、创建、重命名、删除目录以及获取/设置文件属性的方法(可读性,可编写性等等)。
每个程序都会有它自己的沙盒,通过它你可以阅读/编写文件。写入沙盒的文件在程序的进程中将会保持稳定,即便实在程序更新的情况下。
如下所示,你可以在沙盒中定位文件目录:
//对于错误信息
NSError *error;
// 创建文件管理器
NSFileManager *fileMgr = [NSFileManagerdefaultManager];
//指向文件目录
NSString *documentsDirectory= [NSHomeDirectory()
stringByAppendingPathComponent:@"Documents"];
//创建一个目录
[[NSFileManager defaultManager] createDirectoryAtPath: [NSString stringWithFormat:@"%@/myFolder", NSHomeDirectory()] attributes:nil];
创建一个文件
现在我们已经有了文件目录,我们就能使用这个路径在沙盒中创建一个新文件并编写一段代码:
// File we want to create in the documents directory我们想要创建的文件将会出现在文件目录中
// Result is: /Documents/file1.txt结果为:/Documents/file1.txt
NSString *filePath= [documentsDirectory
stringByAppendingPathComponent:@"file1.txt"];
//需要写入的字符串
NSString *str= @"iPhoneDeveloper Tips\nhttp://iPhoneDevelopTips,com";
//写入文件
[str writeToFile:filePath atomically:YES
encoding:NSUTF8StringEncoding error:&error];
//显示文件目录的内容
NSLog(@"Documentsdirectory: %@",
[fileMgr contentsOfDirectoryAtPath:documentsDirectoryerror:&error]);
我们为想要创建的文件构建一条路径(file1.txt),初始化一个字符串来写入文件,并列出目录。最后一行显示了在我们创建文件之后出现在文件目录下的一个目录列表:
对一个文件重命名
想要重命名一个文件,我们需要把文件移到一个新的路径下。下面的代码创建了我们所期望的目标文件的路径,然后请求移动文件以及在移动之后显示文件目录。
//通过移动该文件对文件重命名
NSString *filePath2= [documentsDirectory
stringByAppendingPathComponent:@"file2.txt"];
//判断是否移动
if ([fileMgr moveItemAtPath:filePath toPath:filePath2 error:&error] != YES)
NSLog(@"Unable to move file: %@", [error localizedDescription]);
//显示文件目录的内容
NSLog(@"Documentsdirectory: %@",
[fileMgr contentsOfDirectoryAtPath:documentsDirectoryerror:&error]);
在移动了文件之后,输出结果应该如下图所示:
删除一个文件
为了使这个技巧完整,让我们再一起看下如何删除一个文件:
//在filePath2中判断是否删除这个文件
if ([fileMgr removeItemAtPath:filePath2 error:&error] != YES)
NSLog(@"Unable to delete file: %@", [error localizedDescription]);
//显示文件目录的内容
NSLog(@"Documentsdirectory: %@",
[fileMgr contentsOfDirectoryAtPath:documentsDirectoryerror:&error]);
一旦文件被删除了,正如你所预料的那样,文件目录就会被自动清空:
这些示例能教你的,仅仅只是文件处理上的一些皮毛。想要获得更全面、详细的讲解,你就需要掌握NSFileManager文件的知识。
在开发iPhone程序时,有时候要对文件进行一些操作。而获取某一个目录中的所有文件列表,是基本操作之一。通过下面这段代码,就可以获取一个目录内的文件及文件夹列表。
复制代码
NSFileManager *fileManager = [NSFileManager defaultManager];
//在这里获取应用程序Documents文件夹里的文件及文件夹列表
NSArray *documentPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentDir = [documentPaths objectAtIndex:0];
NSError *error = nil;
NSArray *fileList = [[NSArray alloc] init];
//fileList便是包含有该文件夹下所有文件的文件名及文件夹名的数组
fileList = [fileManager contentsOfDirectoryAtPath:documentDir error:&error];
以下这段代码则可以列出给定一个文件夹里的所有子文件夹名
NSMutableArray *dirArray = [[NSMutableArray alloc] init];
BOOL isDir = NO;
//在上面那段程序中获得的fileList中列出文件夹名
for (NSString *file in fileList) {
NSString *path = [documentDir stringByAppendingPathComponent:file];
[fileManager fileExistsAtPath:path isDirectory:(&isDir)];
if (isDir) {
[dirArray addObject:file];
}
isDir = NO;
}
NSLog(@"Every Thing in the dir:%@",fileList);
NSLog(@"All folders:%@",dirArray);
获得一个文件夹下同类文件:
NSArray *audioArray = [[[NSFileManager defaultManager] directoryContentsAtPath:mainBundlePath]
pathsMatchingExtensions:[NSArray arrayWithObjects:@"jpg",@"png",@"bmp",nil]];
NSFileManager中包含了用来查询单词库目录、创建、重命名、删除目录以及获取/设置文件属性的方法(可读性,可编写性等等)。
每个程序都会有它自己的沙盒,通过它你可以阅读/编写文件。写入沙盒的文件在程序的进程中将会保持稳定,即便实在程序更新的情况下。
如下所示,你可以在沙盒中定位文件目录:
//对于错误信息
NSError *error;
// 创建文件管理器
NSFileManager *fileMgr = [NSFileManagerdefaultManager];
//指向文件目录
NSString *documentsDirectory= [NSHomeDirectory()
stringByAppendingPathComponent:@"Documents"];
//创建一个目录
[[NSFileManager defaultManager] createDirectoryAtPath: [NSString stringWithFormat:@"%@/myFolder", NSHomeDirectory()] attributes:nil];
创建一个文件
现在我们已经有了文件目录,我们就能使用这个路径在沙盒中创建一个新文件并编写一段代码:
// File we want to create in the documents directory我们想要创建的文件将会出现在文件目录中
// Result is: /Documents/file1.txt结果为:/Documents/file1.txt
NSString *filePath= [documentsDirectory
stringByAppendingPathComponent:@"file1.txt"];
//需要写入的字符串
NSString *str= @"iPhoneDeveloper Tips\nhttp://iPhoneDevelopTips,com";
//写入文件
[str writeToFile:filePath atomically:YES
encoding:NSUTF8StringEncoding error:&error];
//显示文件目录的内容
NSLog(@"Documentsdirectory: %@",
[fileMgr contentsOfDirectoryAtPath:documentsDirectoryerror:&error]);
我们为想要创建的文件构建一条路径(file1.txt),初始化一个字符串来写入文件,并列出目录。最后一行显示了在我们创建文件之后出现在文件目录下的一个目录列表:
对一个文件重命名
想要重命名一个文件,我们需要把文件移到一个新的路径下。下面的代码创建了我们所期望的目标文件的路径,然后请求移动文件以及在移动之后显示文件目录。
//通过移动该文件对文件重命名
NSString *filePath2= [documentsDirectory
stringByAppendingPathComponent:@"file2.txt"];
//判断是否移动
if ([fileMgr moveItemAtPath:filePath toPath:filePath2 error:&error] != YES)
NSLog(@"Unable to move file: %@", [error localizedDescription]);
//显示文件目录的内容
NSLog(@"Documentsdirectory: %@",
[fileMgr contentsOfDirectoryAtPath:documentsDirectoryerror:&error]);
在移动了文件之后,输出结果应该如下图所示:
删除一个文件
为了使这个技巧完整,让我们再一起看下如何删除一个文件:
//在filePath2中判断是否删除这个文件
if ([fileMgr removeItemAtPath:filePath2 error:&error] != YES)
NSLog(@"Unable to delete file: %@", [error localizedDescription]);
//显示文件目录的内容
NSLog(@"Documentsdirectory: %@",
[fileMgr contentsOfDirectoryAtPath:documentsDirectoryerror:&error]);
一旦文件被删除了,正如你所预料的那样,文件目录就会被自动清空:
这些示例能教你的,仅仅只是文件处理上的一些皮毛。想要获得更全面、详细的讲解,你就需要掌握NSFileManager文件的知识。
在开发iPhone程序时,有时候要对文件进行一些操作。而获取某一个目录中的所有文件列表,是基本操作之一。通过下面这段代码,就可以获取一个目录内的文件及文件夹列表。
复制代码
NSFileManager *fileManager = [NSFileManager defaultManager];
//在这里获取应用程序Documents文件夹里的文件及文件夹列表
NSArray *documentPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentDir = [documentPaths objectAtIndex:0];
NSError *error = nil;
NSArray *fileList = [[NSArray alloc] init];
//fileList便是包含有该文件夹下所有文件的文件名及文件夹名的数组
fileList = [fileManager contentsOfDirectoryAtPath:documentDir error:&error];
以下这段代码则可以列出给定一个文件夹里的所有子文件夹名
NSMutableArray *dirArray = [[NSMutableArray alloc] init];
BOOL isDir = NO;
//在上面那段程序中获得的fileList中列出文件夹名
for (NSString *file in fileList) {
NSString *path = [documentDir stringByAppendingPathComponent:file];
[fileManager fileExistsAtPath:path isDirectory:(&isDir)];
if (isDir) {
[dirArray addObject:file];
}
isDir = NO;
}
NSLog(@"Every Thing in the dir:%@",fileList);
NSLog(@"All folders:%@",dirArray);
获得一个文件夹下同类文件:
NSArray *audioArray = [[[NSFileManager defaultManager] directoryContentsAtPath:mainBundlePath]
pathsMatchingExtensions:[NSArray arrayWithObjects:@"jpg",@"png",@"bmp",nil]];
发表评论
-
选取相册视频,并获得路径。
2012-07-18 10:18 1664- (NSString*)videoAssetURLT ... -
ad-hoc及企业版app打包之后在itunes中图标为白色的问题
2012-07-03 16:36 1252准备512*512大小的png(将要显示的图片),在终端执行以 ... -
iOS工具类之16进制颜色转为UIColor
2012-06-27 16:33 6714将16进制颜色如#FF0000,转换为UIColor: ... -
调试内存问题
2012-06-12 10:14 681Project -> Edit Scheme -> ... -
[转]iOS开发之详解剪贴板
2011-12-05 11:43 1471概述: 在iOS中, ... -
过滤html标签(修改版)
2011-12-01 10:44 1271- (NSString *)flattenHTML:(NS ... -
[转] iPhone:UIImage 图像截取,等比例缩放
2011-09-29 10:02 7773@interface UIImage(UIImageSc ... -
UIImage用imageNamed的内存问题
2011-09-08 09:33 1229@implementation UIImage(imageNa ... -
截屏存图片到相册或者指定路径
2011-06-13 11:15 2718#import <QuartzCore/Quartz ... -
存图片和视频到iPhone相册
2011-04-19 09:33 7597UIImage *img = [UIImage i ... -
选择相册图片并保存
2011-04-19 08:18 1760.h中: <UINavigationControl ... -
Push一个横屏页面
2011-03-28 16:39 2062[[UIDevice currentDevice] setOr ... -
NSPredicate及正则的一点使用
2011-03-21 14:38 6876记录一点正则表达式的使用。 例如:判断字符串首字母是否为字母 ... -
建立到服务器的连接
2011-02-14 10:47 1313在Mac OS X上,可以使用NSHost和NSS ... -
iPhone中的Sqlite3数据库操作
2010-12-27 09:38 1288可将数据库操作写入一个类,这样用起来也很方便。例如: ... -
Cocos2d游戏场景切换
2010-12-15 09:51 2620在游戏中,我们需要点击菜单选项进入相应的画面,而我们常 ... -
NSNotificationCenter随笔
2010-12-10 13:21 1473可在AppDelegate.h中定义,之后可全局使用。 ... -
Category的使用
2010-12-09 16:17 1014Category的用法有时使得程序很方便,可将已有的类 ... -
iPhone判断是否接入网络
2010-12-06 10:41 2351在这里介绍一种较为简单的判断是否连接网络的方法,首先要引入 ... -
手机问题汇总。
2010-09-16 17:24 0主题:http://bbs.dospy.com/blog.ph ...
相关推荐
iOS开发_iphone开发_文件系统NSFileManager_如何创建、重命名和删除文件
iphone开发之NSFileManager_Class.pdf
新旧objective-cNSFileManager的差异。
iphone开发之NSFileManager_Class[定义].pdf
demo 地址 github.com/pro648/BasicDemos-iOS/tree/master/FileManager 详细介绍:github.com/pro648/tips/wiki/使用NSFileManager管理文件系统 - Bundle Container目录包含应用程序包。 - Data Container目录...
IOS应用源码——NSFileManager_DirectoryLocations.rar
介绍iphone开发过程中会使用到的NSFileManager这一个类中的各个函数
主要介绍了详解iOS学习笔记(十七)——文件操作(NSFileManager),具有一定的参考价值,有需要的可以了解一下。
FCFileManager, 在NSFileManager上简化文件管理,iOS文件管理器 FCFileManager 在NSFileManager上为文件管理器提供英镑的。 为执行最常见的操作提供了许多 static 方法,只需几行代码。 默认情况下,它在文档目录中...
该源码实现一款可以支持NSFileManager查看本地文件功能,几乎可以查看所有的文件,是一个不错的ios学习的例子,喜欢的朋友可以下载学习看看,。
针对NSFileManager的文件管理类工具,提供了文件操作的便携式封装。支持pod方式集成使用:pod 'ZYFileTool',或者直接将Classes里面的文件拖入项目使用。
SwiftFilePath, 简单而强大的NSFileManager封装 SwiftFilePath 简单而强大的NSFileManager封装。用法创建实例你可以从字符串创建 Path 对象。let fooDir = Path("/path/to/fooDir")//
1.利用NSFileManager的最进本的用法操作另外一个项目,同时修改所有.m文件的内容 2.同时修改多个文件夹的名称 github 地址 https://github.com/elite-kai/ELFileManager
用NSCoding持久化数据,以及如何用NSFileManager来有效地保存文件。
NSFileManager_Swift 该示例概述了如何使用NSFileManger保存数据
一个文件管理器包装 NSFileManager,基于构建。 有些不同: 不使用默认文档路径,也不每次都循环所有路径来搜索正确的路径。 使用 NSPredicate 过滤结果搜索路径。 查看演示以获取更多详细信息
FCFileManager iOS File Manager位于NSFileManager之上,用于简化文件管理。 它提供了许多静态方法,只需几行代码即可执行最常见的操作。 默认情况下,它可以在Documents目录中工作,以允许使用相对路径,但是可以在...
iOS文件管理笔记,沙盒,NSFileManager,NSFileHandle
目的 iOS和Mac App Store对应在何处... StandardPaths提供了一组简单的NSFileManager扩展方法,可以在各个平台之间以清晰一致的方式访问文件,并抽象出了在iOS 5及更高版本上应用移动备份属性禁用iCloud备份的复杂性。