9、OC文件管理

来源:互联网 发布:java代理模式使用场景 编辑:程序博客网 时间:2024/06/04 14:02

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;// 关闭文件


0 0
原创粉丝点击