9、OC文件管理

1、应用程序沙盒机制

ios应用程序只能对自己创建的文件系统读取文件,这个独立,封闭,安全的空间,我们称为沙盒。它一般存放着你程序包文件(可执行文件)、图片、声音、视频、polist、sqlite数据库以及其他文件。

模拟器沙盒的位置
/Users/用户s/Library/Application Support/iphone Simulator

如下图所示:

当我们创建我们的应用程序时,在每个沙盒中含有三个文件夹,分别为是Documents、Library、tmp。


Documents 一般我们需要持久的数据都放在这个目录中,你也可以在其中添加子文件夹,尤其需要我们注意的是,iTunes备份和恢复的时候,会包括此目录
Library  设置程序的默认设置和其他状态信息
tmp 创建临时文件的目录,当我们的Ios设备重启时,文件会被消除
获取沙盒目录
    //获得程序的根目录
    NSString *homePath = NSHomeDirectory();
    NSLog(@"home %@",homePath);
    
    //获得Documents目录
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentationDirectory, NSUserDomainMask,YES);
    NSLog(@"document : %@",[paths lastObject]);
    
    //获取Library目录
    paths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask,YES);
    NSLog(@"Library : %@",[paths lastObject]);
    
    //获取tmp路径
    NSLog(@"home %@",NSTemporaryDirectory());


2、NSFileManager 文件操作

与java中的File类似,主要用于文件操作
 
主要功能
  • 创建一个新的文件
  • 重新命名文件
  • 移动文件
  • 复制文件
  • 删除文件
  • 文件是否存在
常用方法
    //创建文件
    - (BOOL)createFileAtPath:(NSString *)path contents:(NSData *)data attributes:(NSDictionary *)attr;
    //创建文件夹
    - (BOOL)createDirectoryAtPath:(NSString *)path withIntermediateDirectories:(BOOL)createIntermediates attributes:(NSDictionary *)attributes error:(NSError **)error NS_AVAILABLE(10_5, 2_0);
    //移动文件
    - (BOOL)moveItemAtPath:(NSString *)srcPath toPath:(NSString *)dstPath error:(NSError **)error NS_AVAILABLE(10_5, 2_0);
    //复制文件
    - (BOOL)copyItemAtPath:(NSString *)srcPath toPath:(NSString *)dstPath error:(NSError **)error NS_AVAILABLE(10_5, 2_0);
    //删除文件
    - (BOOL)removeItemAtPath:(NSString *)path error:(NSError **)error NS_AVAILABLE(10_5, 2_0);
    //文件是否存在
    - (BOOL)fileExistsAtPath:(NSString *)path;


 3、NSFileHandler 文件处理

与Java的FIleInputStream、FileOutputStream类似,用于读取,写入数据。

常用处理方法
+ (id)fileHandleForReadingAtPath:(NSString*)path;// 打开一个文件准备读取
+ (id)fileHandleForWritingAtPath:(NSString*)path; // 打开一个文件准备写入
+ (id)fileHandleForUpdatingAtPath:(NSString*)path; // 打开一个文件准备更新(读取、写入)

- (NSData*)availableData; // 从设备或通道返回可用的数据
- (NSData*)readDataToEndOfFile; // 从当前的节点读取到文件未尾
- (NSData*)readDataOfLength:(NSUInteger)length; // 从当前节点开始读取指定长度数据
- (void)writeData:(NSData*)data; // 写入数据
- (unsigned long long)offsetInFile; // 获取当前文件的偏移量(文件大小)
- (void)seekToFileOffset:(unsigned long long)offset; //跳到指定文件的偏移量
- (unsigned long long)seekToEndOfFile; //跳到文件未尾
- (void)truncateFileAtOffset:(unsigned long long)offset;// 将文件的长度设为offset字节
- (void)closeFile;// 关闭文件


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值