您的位置:首页 > 移动开发 > IOS开发

IOS的文件系统

2016-08-23 10:39 204 查看
当第一次启动app的时候,IOS操作系统会为此APP创建一个文件系统,该文件默认会有四个目录:

Documents:存储用户在操作app时产生的数据,在此目录下的数据可以通过iCloud进行同步。

Library:用户偏好设置,通常和此类NSUserDaults 搭配使用,在此目录下的数据可以通过iCloud进行同步。

tmp:存放临时数据,此目录下的数据不会与iCloud 进行同步。

app包:开发者不会操作此目录,通常是通过此NSBundle来获得内资源,如工程的素材。



下面是对以上四个目录的一些操作:

//获取程序的根目录
NSString *rootPath = NSHomeDirectory();
//获取根目录下的某个文件夹
NSArray *array = NSSearchPathForDirectoriesInDomains(**NSDocumentDirectory**,NSUserDomainMask,YES);
//得到一个数组,取出这个数组的第一个元素(一般只有一个元素)
NSString *documentsPath = [array ObjectAtIndex:0];


1.Documents:操作Documents文件夹,并在文件夹下载视频

//创建一个方法create创建相应的文件夹
-(NSString *)createDirInTmp:(NSString *)dirName{
//获取Documents路径
NSString *documentsPath = [documentsPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES) objectAtIndex:0];
//拼接路径,因为上面语句获得的是documents文件夹的路径
NSString *dirDocuments = [documentsPath stringByAppendingPathComponent:dirName];
//创建NSFIleManager(与通知中心NSNotificationCenter类似,为单例类),用于判断是否存在这个文件夹
NSFileManager *file = [NSFileManager defaultManager];
//判断
BOOL isExist = [file fileExistsAtPath:dirDocuments];
//如果不存在,则创建文件夹
if(!isExist)
//创建文件夹
BOOL isSuccess = [file createDirectoryAtPath:dirDocuments withIntermediateDirector:YES attributes:nil error:nil];
}


//通过上述方法创建Video文件夹
NSString *videoPath = [self creatDirInDocuments:@"Video"];
//从网络上下载视频到Video文件夹
if(videoPath != nil){
NSString *videoUrlString = @" ~/xxx.mp4";
//需要截取网络路径“/”后面的内容,与Video路径拼接,得到文件存储路径
NSString *filePath = [videoPath stringByAppendingPathComponent:[videoUrlString lastPathComponent]];
//判断文件是否存在,依旧使用的是单例类:NSFileManager
//......
//将网络文件写入本地的方法
[fileManager createFileAtPath:filePath contents:data attributes:nil];
}


图片、视频都可以解析成二进制数,这也是文件下载到本地的一个远离。其实是对data的操作。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: