ios开发之文件系统操作
来源:互联网 发布:centos gnome desktop 编辑:程序博客网 时间:2024/05/06 05:30
iOS的沙盒机制
iOS不像Android,没有SD卡概念,不能直接访问图像、视频等内容。iOS应用产生的内容,如图像、文件、缓存内容等都必须存储在自己的沙盒内。默认情况下,每个沙盒含有3个目录:Documents, Library 和 tmp。Library包含Caches、Preferences目录。我们只能操作沙盒中的目录与文件。
一系列API
iOS提供了一系列API来操作目录与文件。以下将对其介绍。
创建与删除
创建与删除目录
NSFileManager- (BOOL)createDirectoryAtPath:(NSString *)path withIntermediateDirectories:(BOOL)createIntermediates attributes:(nullable NSDictionary<NSString *, id> *)attributes error:(NSError **)error;
如果目录不存在则创建,如果存在则报错。(类似于mkdir函数)
参数path表示目录路径;参数createIntermediates表示如果有中间目录是否创建,一般设置为NO;参数attributes表示创建目录的属性,一般设置为nil;参数error在创建失败后显示出错信息。
NSFileManager- (BOOL)removeItemAtPath:(NSString *)path error:(NSError **)error;
如果目录存在则删除,如果不存在则报错。如果目录不是空的,一样可以删除。
参数path表示目录路径;参数error在删除失败后显示出错信息。
创建与删除文件
NSFileManager- (BOOL)createFileAtPath:(NSString *)path contents:(nullable NSData *)data attributes:(nullable NSDictionary<NSString *, id> *)attr;
如果文件不存在则创建并写入数据,如果存在则先截断再写入数据。(类似于creat函数)
参数path表示文件路径;参数data表示写入的数据;参数attr表示创建文件的属性,一般设置为nil。
NSFileManager- (BOOL)removeItemAtPath:(NSString *)path error:(NSError **)error;
删除文件的API和删除目录的API是一样的。ios使用同一个API实现了删除目录与删除文件功能。(unix中使用rmdir删除目录,使用unlink删除文件)
获取与修改
获取文件属性
NSFileManager- (nullable NSDictionary<NSFileAttributeKey, id> *)attributesOfItemAtPath:(NSString *)path error:(NSError **)error
获取文件对应的属性,属性存放在NSDictionary结构中。(类似于unix中的stat函数)
参数path表示文件路径;参数error在获取失败后显示出错信息。
以下为文件属性输出的一个例子
attr = { NSFileCreationDate = "2017-02-04 08:09:26 +0000"; NSFileExtensionHidden = 0; NSFileGroupOwnerAccountID = 20; NSFileGroupOwnerAccountName = staff; NSFileModificationDate = "2017-02-04 08:09:26 +0000"; NSFileOwnerAccountID = 501; NSFilePosixPermissions = 493; NSFileReferenceCount = 2; NSFileSize = 68; NSFileSystemFileNumber = 1098174; NSFileSystemNumber = 16777218; NSFileType = NSFileTypeDirectory;}
修改文件属性
- (BOOL)setAttributes:(NSDictionary<NSFileAttributeKey, id> *)attributes ofItemAtPath:(NSString *)path error:(NSError **)error
修改文件对应的属性。
参数attributes 包含要修改的文件属性。参数error在修改失败后显示出错信息。
获取目录内容
- (nullable NSArray<NSString *> *)contentsOfDirectoryAtPath:(NSString *)path error:(NSError **)error
获取目录中所有文件的名字。返回值是字符串列表。
参数path表示目录路径;参数error在获取失败后显示出错信息。
获取文件内容
- (nullable NSData *)contentsAtPath:(NSString *)path;
获取文件的内容。
参数path表示文件路径
修改文件内容
- ios开发之文件系统操作
- IOS开发之文件系统NSFileManager
- ios开发 之 通讯录操作
- 【android开发】文件系统操作
- iOS 之文件系统
- IOS开发 沙盒中的文件操作和文件系统NSFilemanager的操作
- php开发之文件系统
- 文件系统开发--文件流操作
- IOS开发之----文件操作(一)
- IOS开发之----XML常用操作
- IOS开发之UIView常用操作
- IOS开发之—-XML常用操作
- ios开发之沙盒文件操作
- ios开发之文件路径操作
- ios开发之字符串操作(三)
- ios开发之字符串操作(四)
- ios开发之IOS沙盒(sandbox)机制和文件操作
- ios开发之IOS沙盒(sandbox)机制和文件操作
- 加载Properties文件工具类:LoadConfig
- html 基础
- oracle与mysql分页查询语句sql
- 六、从Undo,Redo谈命令模式
- 《C Primer Plus》读书笔记——递归
- ios开发之文件系统操作
- 顺序、分支结构程序设计
- SQL中游标的使用
- phpexcel写入数据
- 任务与函数
- JS中的arguments
- 七、浅谈模板方法模式
- Docker 基础 - Dockerfile
- 测试方法分析和总结2.0