`

IOS文件系统的管理

 
阅读更多

转自:http://blog.csdn.net/zhuzhihai1988/article/details/7904333

 

 

NSFileManager
判断一个给定路劲是否为文件夹

 

[self.fileManagerfileExistsAtPath:isDirectory:];

 


用于执行一般的文件系统操作 (reading and writing is done via NSData, et. al.).
主要功能包括:从一个文件中读取数据;向一个文件中写入数据;删除文件;复制文件;移动文件;比较两个文件的内容;测试文件的存在性;读取/更改文件的属性... ... 
Just alloc/init an instance and start performing operations. Thread safe.

  • 常见的NSFileManager处理文件的方法如下:
NSFileManager *fileManager = [[NSFileManager alloc]init]; //最好不要用defaultManager。 
NSData *myData = [fileManager contentsAtPath:path]; // 从一个文件中读取数据 
[fileManager createFileAtPath:path contents:myData attributes:dict];//向一个文件中写入数据,属性字典允许你制定要创建 
[fileManager removeItemAtPath:path error:err]; 
[fileManager moveItemAtPath:path toPath:path2 error:err]; 
[fileManager copyItemAtPath:path toPath:path2 error:err]; 
[fileManager contentsEqualAtPath:path andPath:path2]; 
[fileManager fileExistsAtPath:path]; ... ...
  • 常见的NSFileManager处理目录的方法如下:
[fileManager currentDirectoryPath]; 
[fileManager changeCurrentDirectoryPath:path]; 
[fileManager copyItemAtPath:path toPath:path2 error:err]; 
[fileManager createDirectoryAtPath:path withIntermediateDirectories:YES attributes:nil error:err]; 
[fileManager fileExistsAtPath:path isDirectory:YES]; 
[fileManager enumeratorAtPath:path]; //获取目录的内容列表。一次可以枚举指定目录中的每个文件。 ... ...
Has a delegate with lots of “should” methods (to do an operation or proceed after an error).
And plenty more. Check out the documentation.

1、文件的创建

-(IBAction) CreateFile

{

//对于错误信息

NSError *error;

// 创建文件管理器

NSFileManager *fileMgr = [NSFileManager defaultManager];

//指向文件目录

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:@"file2.txt"];

//需要写入的字符串

NSString *str= @"iPhoneDeveloper Tips\nhttp://iPhoneDevelopTips,com";

//写入文件

[str writeToFile:filePath atomically:YES encoding:NSUTF8StringEncoding error:&error];

//显示文件目录的内容

NSLog(@"Documentsdirectory: %@",[fileMgr contentsOfDirectoryAtPath:documentsDirectory error:&error]);
}

 

 

2、对文件重命名

对一个文件重命名
想要重命名一个文件,我们需要把文件移到一个新的路径下。下面的代码创建了我们所期望的目标文件的路径,然后请求移动文件以及在移动之后显示文件目录。
//通过移动该文件对文件重命名
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]);
 

 

3、删除一个文件


为了使这个技巧完整,让我们再一起看下如何删除一个文件:
//在filePath2中判断是否删除这个文件
if ([fileMgr removeItemAtPath:filePath2 error:&error] != YES)
NSLog(@"Unable to delete file: %@", [error localizedDescription]);
//显示文件目录的内容
NSLog(@"Documentsdirectory: %@",
[fileMgr contentsOfDirectoryAtPath:documentsDirectoryerror:&error]);
一旦文件被删除了,正如你所预料的那样,文件目录就会被自动清空:

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

 

 

4、删除目录下所有文件

//获取文件路径
- (NSString *)attchmentFolder{

NSString *document = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];

NSString *path = [document stringByAppendingPathComponent:@"Attchments"];


NSFileManager *manager = [NSFileManager defaultManager];


if(![manager contentsOfDirectoryAtPath:path error:nil]){

[manager createDirectoryAtPath:path withIntermediateDirectories:NO attributes:nil error:nil];

}
return path;

}

--清除附件
BOOL result = [[NSFileManager defaultManager] removeItemAtPath:[[MOPAppDelegate instance] attchmentFolder] error:nil];

5、判断文件是否存在

NSString *filePath = [self dataFilePath];

if ([[NSFileManager defaultManager]fileExistsAtPath:filePath]) 

  //do some thing

附:

 

-(NSString *)dataFilePath

{

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectoryNSUserDomainMaskYES);

NSString *documentDirectory = [paths objectAtIndex:0];

return [documentDirectory stringByAppendingPathComponent:@"data.plist"];

}

 

 

常用路径工具函数
NSString * NSUserName(); 返回当前用户的登录名 
NSString * NSFullUserName(); 返回当前用户的完整用户名 
NSString * NSHomeDirectory(); 返回当前用户主目录的路径 
NSString * NSHomeDirectoryForUser(); 返回用户user的主目录 
NSString * NSTemporaryDirectory(); 返回可用于创建临时文件的路径目录 
 
常用路径工具方法
-(NSString *) pathWithComponents:components    根据components(NSArray对象)中元素构造有效路径 
-(NSArray *)pathComponents                                          析构路径,获取路径的各个部分 
-(NSString *)lastPathComponent                                       提取路径的最后一个组成部分 
-(NSString *)pathExtension                                           路径扩展名 
-(NSString *)stringByAppendingPathComponent:path                    将path添加到现有路径末尾 
-(NSString *)stringByAppendingPathExtension:ext           将拓展名添加的路径最后一个组成部分 
-(NSString *)stringByDeletingPathComponent                           删除路径的最后一个部分 
-(NSString *)stringByDeletingPathExtension                           删除路径的最后一个部分 的扩展名 
-(NSString *)stringByExpandingTildeInPath          将路径中的代字符扩展成用户主目录(~)或指定用户主目录(~user) 
-(NSString *)stringByResolvingSymlinksInPath                         尝试解析路径中的符号链接 
-(NSString *)stringByStandardizingPath            通过尝试解析~、..、.、和符号链接来标准化路径 
使用路径NSPathUtilities.h 
tempdir = NSTemporaryDirectory(); 临时文件的目录名 
path = [fm currentDirectoryPath];
[path lastPathComponent]; 从路径中提取最后一个文件名 
fullpath = [path stringByAppendingPathComponent:fname];将文件名附加到路劲的末尾 
extenson = [fullpath pathExtension]; 路径名的文件扩展名 
homedir = NSHomeDirectory();用户的主目录 
component = [homedir pathComponents];  路径的每个部分 
 
NSProcessInfo类:允许你设置或检索正在运行的应用程序的各种类型信息
(NSProcessInfo *)processInfo                                  返回当前进程的信息
-(NSArray*)arguments                                           以NSString对象数字的形式返回当前进程的参数
-(NSDictionary *)environment                                   返回变量/值对词典。描述当前的环境变量
-(int)processIdentity                                          返回进程标识
-(NSString *)processName                                       返回进程名称
-(NSString *)globallyUniqueString   每次调用该方法都会返回不同的单值字符串,可以用这个字符串生成单值临时文件名   
-(NSString *)hostname                                          返回主机系统的名称 
-(unsigned int)operatingSystem                                 返回表示操作系统的数字 
-(NSString *)operatingSystemName                                     返回操作系统名称 
-(NSString *)operatingSystemVersionString                                     返回操作系统当前版本
-(void)setProcessName:(NSString *)name                                将当前进程名称设置为name 

============================================================================
 NSFileHandle类允许更有效地使用文件。
可以实现如下功能
1、打开一个文件,执行读、写或更新(读写)操作;
2、在文件中查找指定位置;
3、从文件中读取特定数目的字节,或将特定数目的字节写入文件中
另外,NSFileHandle类提供的方法也可以用于各种设备或套接字。一般而言,我们处理文件时都要经历以下三个步骤
1、打开文件,获取一个NSFileHandle对象(以便在后面的I/O操作中引用该文件)。
2、对打开文件执行I/O操作。
3、关闭文件。
NSFileHandle *fileHandle = [[NSFileHandle alloc]init]; 
fileHandle = [NSFileHandle fileHandleForReadingAtPath:path]; //打开一个文件准备读取
fileHandle = [NSFileHandle fileHandleForWritingAtPath:path]; 
fileHandle = [NSFileHandle fileHandleForUpdatingAtPath:path]; 
fileData = [fileHandle availableData]; // 从设备或者通道返回可用的数据 
fileData = [fileHandle readDataToEndOfFile]; 
[fileHandle writeData:fileData]; //将NSData数据写入文件 
[fileHandle closeFile]; //关闭文件 ... ...
注:NSFileHandle类没有提供创建文件的功能,所以必须使用NSFileManager来创建文件

 

分享到:
评论

相关推荐

    iso9000企业文件管理系统试用版

    ISO9000企业文件管理系统是一款专为组织和企业设计的高效、规范化的文档管理工具,旨在帮助企业实现质量管理体系的标准要求。ISO9000是国际标准化组织(ISO)制定的一套质量管理标准,核心内容包括质量管理原则、...

    ISO文件管理系统免费版 v1.1

    文件無紙化,可節省大量的发行成本,ISO文件管理系統使企業推動ISO文件管理、通過認證收到事半功倍之效。 适应性强: 可自行定義和维护分类结构体系、可以自行新增或移动文件夹,同时適用於ISO9000和ISO14000,能应...

    ISO9600文件系统-第三版

    ### ISO9600文件系统-第三版:深入解析与理解 #### 一、概述 ISO9600文件系统是用于定义光盘(CD-ROM)的信息交换标准,旨在为不同计算机系统之间的数据共享提供一致性和兼容性。该标准由ECMA International(欧洲...

    ISO9001质量管理体系标准讲解.pdf

    ISO9000系列标准是由ISO9000质量管理体系(基础和术语)、ISO9001质量管理体系(要求)、ISO9004质量管理体系(业绩改进指南)、ISO9011质量和环境审核指南、ISO10012测量控制系统构成,其中ISO9001和ISO9004是其...

    ISO9001全套体系文件

    ISO9001是国际标准化组织(ISO)制定的一套全球认可的质量管理体系标准,其目的是为了帮助企业建立、实施和改进质量管理系统,确保产品和服务的质量一致性,增强顾客满意度。这套标准适用于各行各业,无论企业规模...

    自定义表单、流程和版式的ISO9000质量体系管理系统

    【标题】"自定义表单、流程和版式的ISO9000质量体系管理系统"是一款专为企事业单位设计的Web应用程序,旨在协助企业构建并有效运行符合ISO9001标准的质量管理体系。这款软件强调了灵活性和可扩展性,允许用户根据...

    ISO文件打开工具UltraISO 系统盘制作工具

    在日常工作中,无论是个人用户还是企业IT管理员, UltraISO都能提供高效、便捷的ISO文件管理方案。通过它的强大功能,我们可以轻松地处理系统盘制作、数据备份、软件分发等一系列任务,大大提高了工作效率。

    ISO41001-2018设施管理.管理系统.带使用指南的要求

    ISO41001-2018设施管理.管理系统.带使用指南的要求

    iso重要文档模板iso重要文档模板

    模板通常包含这些文档的基本结构、条款要求和填写指南,帮助企业快速合规地构建文档系统。 2. ISO 14001环境管理体系:该标准关注企业的环境影响和可持续性。重要文档如环境政策、环境因素识别与评估、目标和指标、...

    蓝点ISO9000质量体系管理系统 v22.rar

    ISO9000质量管理体系2015新版,不再强制要求《质量手册》和《程序文件》这类难以理解的文件形式,而统一用“形成文件的信息”取而代之,对文件的载体是纸质还是电子文档或软件信息系统都予以认可和支持,明显可以...

    ISO软件标准文档模板

    在ISO文档模板中,DOT格式通常指的是Microsoft Word的文档模板文件。这种格式允许用户创建基于预定义样式和布局的新文档,使得文档在外观和结构上保持专业和统一。通过使用DOT模板,团队成员可以快速生成符合ISO标准...

    ISO9001--配置管理控制及样例

    ISO9001配置管理控制及样例 ISO9001是国际标准化组织(ISO)发布的一套质量管理体系标准,旨在帮助组织建立一个有效的质量管理体系,确保产品或服务达到客户要求。配置管理控制是ISO9001的一个重要组成部分,旨在...

    ISO系统安装文件制作工具

    7. **安全性和备份**:利用UltraISO制作的ISO文件,可以作为系统备份的一种方式,避免了物理媒介的磨损和数据丢失,确保在系统出现问题时能够快速恢复。 总之,"ISO系统安装文件制作工具"如UltraISO,是IT专业人士...

    ISO软件质量管理文档

    ISO软件质量管理文档是一套全面的指导材料,旨在帮助软件开发团队按照国际标准ISO/IEC 9001:2015进行质量管理。这套文档覆盖了软件生命周期的各个阶段,包括需求分析、设计、开发、测试、变更管理和实施等关键环节。...

    DOS7.1系统镜像ISO文件(配合xPC制作DOS启动盘)

    DOS7.1系统镜像ISO文件是计算机操作系统发展历史中的一个重要组成部分,它代表了个人计算机早期的操作系统环境。在Windows系统占据主导地位之前,DOS(Disk Operating System)是IBM PC及其兼容机的主要操作系统。...

    ISO 22400全系列 - 自动化系统和集成 - 制造运营管理的关键绩效指标 - 包含全部4份最新英文标准文件.rar

    1,ISO 22400-1:2014 自动化系统和集成 - 制造运营管理的关键绩效指标 (KP Is) - 第 1 部分:概述、概念和术语 - 完整英文版(24页).pdf 2,ISO 22400-2:2014 自动化系统和集成 - 制造运营管理的关键绩效指标 ...

    纯DOS启动光盘镜像ISO文件

    【纯DOS启动光盘镜像ISO文件】是一种古老但仍然有用的技术,它主要用于在没有操作系统或操作系统出现问题时恢复、维护或安装系统。DOS(Disk Operating System)是微软早期开发的一个命令行操作系统,它的简单性和...

    mac os x 10.8 iso系统镜像迅雷种子文件

    Mac OS X 10.8的ISO文件大小较大,因为它包含了一个完整的操作系统,包括内核、应用程序、系统库、用户界面以及其他各种组件。 标签"mac ios镜像"可能意味着此ISO文件不仅适用于Mac OS X,也可能与iOS设备的某些...

Global site tag (gtag.js) - Google Analytics