ios开发之文件系统操作
2017-02-04 17:07
609 查看
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开发 沙盒中的文件操作和文件系统NSFilemanager的操作
- IOS文件系统及其相关操作(NSFileManager,NSFileHandle)
- 文件系统开发--文件流操作
- iOS开发_iphone开发_文件系统NSFileManager_如何创建、重命名和删除文件
- IOS项目开发中的文件和文件夹操作
- iOS开发---常用文件读写操作。
- IOS文件系统及其相关操作(NSFileManager,NSFileHandle)
- IOS开发 沙盒中的文件操作
- 常见文件操作 - iOS开发
- ios助手开发系列(五):文件操作系列2 - 操作文件和文件夹所需要开启的服务:AFC服务和AFC2服务
- iOS开发:数据存储之plist文件操作
- iOS开发_iphone开发_文件系统NSFileManager_如何创建、重命名和删除文件
- 详解ios文件系统文件目录读写操作
- iphone编程--详解ios文件系统文件目录读写操作
- IOS开发之文件操作(一个简单的文件操作类)
- iphone ios 文件系统操作(创建、删除,修改,获取属性)
- ios开发对配置文件plist的操作
- IOS文件系统及其相关操作(NSFileManager,NSFileHandle)
- IOS开发 沙盒中的文件操作
- IOS文件系统及其相关操作(NSFileManager,NSFileHandle)