转:了解iPhone应用程序中App目录结构
2015-08-31 13:09
597 查看
首先我们知道iPhone的App的目录结构如下:
对于一个运行在iPhone的App,它只能访问自己根目录下的一些文件(即所谓沙盒sandbox保护机制)。一个app发布到iPhone上后,它的目录结构如下:
其中的app root根目录可以用NSHomeDirectory()访问到;
Documents目录就是我们可以用来写入并保存文件的地方,一般可通过:
得到。
tmp目录我们可以在里面写入一些程序运行时需要用到的数据,里面写入的数据在程序退出后即会清除。此目录可以通过
方法访问到。
文件一些主要操作可以通过NSFileManager来操作,可以通过[NSFileManager defaultManager]得到它的实例。
相关的一些操作:
创建一个目录,比如要在Documents下面创建一个test目录:
取得一个目录下的所有文件名:(如上面的myDirectory)可用:
或
读取某个文件:
其中myFilePath应是包含完整路径的文件名。或直接用NSData的类方法:
保存某个文件:
可以用NSFileManager的
或NSData的
对于一个运行在iPhone的App,它只能访问自己根目录下的一些文件(即所谓沙盒sandbox保护机制)。一个app发布到iPhone上后,它的目录结构如下:
其中的app root根目录可以用NSHomeDirectory()访问到;
Documents目录就是我们可以用来写入并保存文件的地方,一般可通过:
1 NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 2 NSString *documentsDirectory = [paths objectAtIndex:0];
得到。
tmp目录我们可以在里面写入一些程序运行时需要用到的数据,里面写入的数据在程序退出后即会清除。此目录可以通过
NSString *NSTemporaryDirectory(void);
方法访问到。
文件一些主要操作可以通过NSFileManager来操作,可以通过[NSFileManager defaultManager]得到它的实例。
相关的一些操作:
创建一个目录,比如要在Documents下面创建一个test目录:
1 NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES); 2 NSString *documentsDirectory = [paths objectAtIndex:0]; 3 NSLog(@"%@",documentsDirectory); 4 NSFileManager *fileManage = [NSFileManager defaultManager]; 5 NSString *myDirectory = [documentsDirectory stringByAppendingPathComponent:@"test"]; 6 BOOL ok = [fileManage createDirectoryAtPath:myDirectory attributes:nil];
取得一个目录下的所有文件名:(如上面的myDirectory)可用:
NSArray *file = [fileManager subpathsOfDirectoryAtPath:myDirectory error:nil];
或
NSArray *files = [fileManager subpathsAtPath:myDirectory];
读取某个文件:
NSData *data = [fileManager contentsAtPath:myFilePath];
其中myFilePath应是包含完整路径的文件名。或直接用NSData的类方法:
NSData *data = [NSData dataWithContentOfPath:myFilePath];
保存某个文件:
可以用NSFileManager的
- (BOOL)createFileAtPath:(NSString *)path contents:(NSData *)data attributes:(NSDictionary *)attr;
或NSData的
- (BOOL)writeToFile:(NSString *)path atomically:(BOOL)useAuxiliaryFile; - (BOOL)writeToFile:(NSString *)path options:(NSUInteger)writeOptionsMask error:(NSError **)errorPtr;
相关文章推荐
- iOS中,在类的源文件(.m)中,@interface部分的作用?
- JAVA人学习ios swift(笔记)
- Android 开源框架Universal-Image-Loader 基本介绍及使用
- Android bitmap的拷贝以及平移旋转缩放等效果
- Android自学笔记之ProgressBar进度条的属性、常用方法及使用
- Android handler最简单的用法
- 每天一个小程序——统计字符的个数
- android EditText 监听焦点变化
- Android学习心得(16) --- Dex文件结构实例解析(2)
- Android开发之模拟器的选择
- iOS代码常用的代码片段
- Swift2.0发布以来的历次主要更新
- Android AsyncTask onPostExecute()不执行,与JPush冲突
- [Android Pro] 通过IMSI判断手机是移动、联通、电信
- Android使用charles抓包
- Android Camera open流程
- IOS之分析网易新闻存储数据(CoreData的使用,增删改查)
- Unity3D物理性能优化
- Unity 自定义事件
- Android 自定义spinner文字颜色 和 显示样式