黑马程序员——黑苹果的日记(11)—— oc加强
来源:互联网 发布:知乎上面的神回复 编辑:程序博客网 时间:2024/05/01 19:02
------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------
一 NSFileManager
1>
NSFileManager是用来管理文件系统的 它可以用来进行拷贝、剪切、创建等
NSFileManager使用了单例模式singleton .使用defaultManager方法可以获得那个单例对象
[NSFileManager defaultManager]
2>NSFileManager基本(常见的判断)
- (BOOL)fileExistsAtPath:(NSString *)path;
path这个文件或文件夹(目录)是否存在
- (BOOL)fileExistsAtPath:(NSString *)path isDirectory:(BOOL *)isDirectory;
path这个文件或文件夹是否存在, isDirectory代表是否为文件夹
- (BOOL)isReadableFileAtPath:(NSString *)path;
path这个文件或文件夹是否可读
- (BOOL)isWritableFileAtPath:(NSString *)path;
path这个文件或文件夹是否可写
- (BOOL)isDeletableFileAtPath:(NSString *)path;
path这个文件或文件夹是否可删除
3>NSFileManager文件访问
- (NSDictionary *)attributesOfItemAtPath:(NSString *)path error:(NSError **)error;
获得path这个文件\文件夹的属性
- (NSArray *)subpathsAtPath:(NSString *)path;
查找给定路径下的所有子路径,返回一个数组, 深度查找,不限于当前层,也会查找package的 内容。
- (NSArray *)contentsOfDirectoryAtPath:(NSString *)path error:(NSError **)error;
获得path的当前子路径(path下的所有直接子内容,path必须是一个目录)
- (NSData *)contentsAtPath:(NSString *)path;
获得文件内容
4>NSFileManager文件操作
- (BOOL)createDirectoryAtPath:(NSString *)path withIntermediateDirectories:(BOOL)
createIntermediates attributes:(NSDictionary *)attributes error:(NSError **)error;
只能创建文件夹(createIntermediates为YES代表自动创建中间的文件夹) 注意如果要创建的目录已经存在,则本次创建失败
- (BOOL)copyItemAtPath:(NSString *)srcPath toPath:(NSString *)dstPath error:(NSError **)error;
拷贝,如果目标目录已经存在同名文件,则无法拷贝
- (BOOL)moveItemAtPath:(NSString *)srcPath toPath:(NSString *)dstPath error:(NSError **)error;
移动(剪切)
- (BOOL)removeItemAtPath:(NSString *)path error:(NSError **)error;
删除
- (BOOL)createFileAtPath:(NSString *)path contents:(NSData *)data attributes:(NSDictionary *)attr;
创建文件
5>NSFileManager文件下载思路
1.发送请求给服务器,要求下载某个文件
2.服务器发出响应,返回文件数据
3.手机客户端利用NSData来存放服务器返回的文件数据
4.利用NSFileManager将NSData里面的文件数据写到新的文件中。
二 iOS沙盒机制
1)沙盒的概念
应用沙盒就是文件系统目录,与其他应用的文件系统隔离,
ios系统不能访问其他应用沙盒。ios8中可开放访问(extension)
应用沙盒包括:应用程序包、Documents、Libaray、tmp。
应用程序包:所有的资源文件和可执行文件
Documents:保存应用运行时生成的需要持久化的数据,iTunes会自动备份该目录。
tmp:保存应用运行时所需的临时数据,使用完毕后再将相应的文件从该目录删除
Libaray/Caches:存放缓存文件,iTunes不会备份此目录,此目录下文件不会在应用退出删除。
Libaray/Preferences:保存应用的所有偏好设置,iTunes会自动备份该目录。
2)沙盒的位置
(1)Xcode5中模拟器路径为:/Users/用户名/Library/Application Support/iPhone Simulator
2)Xcode6中模拟器路径为:/Users/用户名/ Library/Developer/CoreSimulator
NSSearchPathForDirectoriesInDomains
返回一个绝对路径用来存放我们需要储存的文件
第一个参数:要获取的沙盒文件夹名称
第二个参数:
NSUserDomainMask = 1,//用户主目录中
NSLocalDomainMask = 2,//当前机器中 NSNetworkDomainMask = 4,//网络中可见的主机
NSSystemDomainMask = 8,//系统目录,不可修改(/System) NSAllDomainsMask = 0x0ffff,//全部
第三个参数:YES/NO 是否获取全路径
//Document目录NSArray *paths= NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);NSString *path= [paths objectAtIndex:0];//Cache目录NSArray *paths= NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);NSString *path= [paths objectAtIndex:0];//Libaray目录NSArray *paths= NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);NSString *path = [paths objectAtIndex:0];//tmp目录NSString *tmpDir = NSTemporaryDirectory();常见用法:
在沙盒文件中创建文件夹
如:在Document目录下创建新的文件夹test
0 0
- 黑马程序员——黑苹果的日记(11)—— oc加强
- 黑马程序员——黑苹果的日记(8)——oc基础之类和对象
- 黑马程序员——黑苹果的日记(4)——基础知识(2)
- 黑马程序员——黑苹果的日记(3)——函数和进制
- 黑马程序员——黑苹果的日记(5)——字符串
- 黑马程序员——黑苹果的日记(6)——Foundation之NSString
- 黑马程序员——黑苹果的日记(7)——Foundation(2)
- 黑马程序员——黑苹果的日记(1) — 一维数组
- 黑马程序员——黑苹果的日记(2)—基础知识总结(1)
- 黑马程序员——OC语言加强---block的typedef
- 黑马程序员—— OC加强---对象的拷贝
- 黑马程序员——oc加强学习(内存管理)
- 黑马程序员—OC学习日记.OC基础知识
- 黑马程序员--【学习日记九】——基础加强
- 黑马程序员—IOS加强视频—oc内存管理
- 黑马程序员——oc加强学习(协议)
- 黑马程序员——oc加强学习(block)
- 黑马程序员——OC语言加强---@property参数
- The Array ||
- 6.7Pointers to Functions
- UITextField 弹出键盘的外观(类型)设置
- Unity Asset(4)特性插件 FX Maker
- muuarhmrc
- 黑马程序员——黑苹果的日记(11)—— oc加强
- 慕课学习C笔记01-第1~4章数据类型、运算符和程序结构语句
- 黑马程序员——黑苹果的日记(8)——oc基础之类和对象
- Example-1-MPI_Scatterv and MPI_Gather
- GIT 建仓库 及 用 BeyondCompare 来对比合并
- Python Foundation - part three
- 九大内置对象
- 黑马程序员——黑苹果的视频笔记(9)——指针(C语言)
- mybatis与mysql配置