【iOS 开发基础学习 七】

文件的管理

  • 沙盒的概念
    定义:
		1、iOS中每个App应用程序都有一个`单独封闭` 的文件夹。
	 	2、沙盒目录用来存放App的本地文件,例如:音频、视频、图片文件
		3、当前App应用陈旭没权限访问其他App的沙盒(更安全)

沙盒路径的获取

- 模拟器上的沙盒目录路径:
	~/Library/Application Support/iPhone Simulator/版本/Applications
	
- 沙盒目录中有如下子目录
	1、Documents存放长期使用的文件
	2、Library系统存放文件
	3、tmp临时文件,App重启时,该目录下的文件清空
	//沙盒的主目录
	NSString *homePath = NSHomeDirectory();
	//2.获取主目录
	NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory directory,NSSearchPathDomainMask domainMask,BOOL expandTilde)
	
	//获取沙盒下Documents目录
	NSString *documents = [homePath stringByAppendingPathComponent:@"Documents"];
	//获取沙盒下的Library目录
	NSString *library =	[homePath stringByAppendingPathComponent:@"Library"];
	//获取沙盒下的tmp目录
	NSString *library =	[homePath stringByAppendingPathComponent:@"tmp"];
  • NSString处理路径
	//演示路径
	NSString *path = @"/User/iOS/file.txt";
	//1.获取路径的组成部分	结果:("/","User","iOS","file.txt")
	NSArray *components = [path pathComponents];
	//2.路径的最后一个组成部分 	结果:file.txt
	NSString *lastName = [path lastPathComponent];
	//3.追加文件或目录 	结果:/User/iOS/file.txt/app.txt
	NSString *filePath = [path stringByAppendingPathComponent:@"app.txt"];//(不需要加"/")
	//4.删除最后部分的组成部分	结果:/User/iOS
	NSString *filePath = [path stringByDeletingLastPathComponent];
	//5.获取路径最后部分的扩展名 	结果:txt
	NSString *extName = [path pathExtension];
	//6.追加扩展名	结果:/User/iOS/file.txt.jpg
	NSString *filePath = [path stringByAppendingPathExtension:@"jpg"];
  • NSData
    定义: NSData是对数据的一种抽象,任何数据都可以通过NSData来存储,NSMutableData是可变的,继承于NSData。
    分类:
	 - 音频数据
	 - 图片数据
	 - 视频数据
	 - 文本数据

示例

	//NSString 转 NSData
	NSData *data = [s dataUsingEncoding:NSUTF8StringEncoding];
	
	//NSData 转 NSString
	NSString *string = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; 
 	
 	
  • NSFileManager
    定义: NSFileManager主要对文件进行管理
    功能:
    - 创建文件
    - 复制文件
    - 删除文件
    - 剪切文件
	//创建NSFileManager对象
	NSFileManager *fileManager = [NSFileManager defaultManager]; 	
	//创建:一个文件并写入数据
	-(BOOL) createFileAtPath:(NSString *)path contents:(NSData *)data;
	//从一个文件中读取数据
	-(NSData *)contentsAtPath:(NSString *)path;		
	//剪切:srcPath路径上的文件移动到dstPath路径上,注意这里的路径是文件路径而不是目录(可以修改文件名)
	-(BOOL)moveItemAtPath:(NSString *)srcPath toPath:(NSString *)dstPath error:(NSError **/*双重指针变量*/)error;
	//复制:srcPath路径上的文件复制到dstPath路径上
	-(BOOL)copyItemAtPath:(NSString *)srcPath toPath:(NSString *)dstPath error:(NSError *)error;
	//文件是否存在
	-(BOOL)fileExistsAtPath:(NSString *)path;
	//移除文件(删除)
	-(BOOL)removeItemAtPath:(NSString *)path error:(NSError **)error;
	//文件属性
	-(NSDictionary)attributesOfItemAtPath:(NSString *)path error:(NSSError **)error;
  • NSFileHandle

猜你喜欢

转载自blog.csdn.net/sinat_30220049/article/details/106788253