美文网首页IOS_OC_Summarize
iOS 获取沙盒及其它路径的总结

iOS 获取沙盒及其它路径的总结

作者: ninazhang | 来源:发表于2017-04-07 17:13 被阅读0次

一、沙盒机制

ios应用程序只能在为该应用程序创建的文件系统中读取或写入文件,不可以去其它地方访问,此区域称为沙盒。所有的非代码文件都要保存于此(eg:文本文件,声音,图标等)。

二、沙盒目录结构

A、Data文件夹下

/Users/Nina/Library/Developer/CoreSimulator/Devices/1E4B0A2F-AA88-4F61-901C-2DD1939B7FD9/data/Containers/Data/Application/298DC6CF-C19A-4663-B16D-8B6C1C5A383F/Documents/ceshi.sqlite

B、Bundle文件夹下

//应用程序包。应用程序的源文件,包括资源文件和可执行文件 /Users/Nina/Library/Developer/CoreSimulator/Devices/1E4B0A2F-AA88-4F61-901C-2DD1939B7FD9/data/Containers/Bundle/Application/1F738D13-FD4E-446F-B47E-3BCBD9F8E657/SandBoxPath.app

NSString *appPath = [[NSBundle mainBundle] bundlePath];

沙盒中默认包含有三个文件夹(Documents,Library,tmp)

1、Documents:苹果建议将程序创建产生的文件以及应用浏览产生的文件数据保存在该目录下;iTunes 会同步此文件夹中的内容。

2、Library:存储程序的默认设置和其他状态信息。iTunes会备份此目录,但不包含其子目录caches.

(1)library/Caches:存放缓存文件;iTunes不会备份此目录;在应用退出时,该目录下的文件将被删除;保存应用程序再次启动过程中需要的信息。

(2)library/Preferences:存放偏好设置的文件(不应该直接创建偏好设置的文件,而是应该使用NSUserDefaults来取得或设置文件);iTunes 会同步此文件夹中的内容。

总结:一般可将文件存放在Documents或Library/Caches目录下,

两者的区别:Documents可以被iTunes同步备份,但Library/Caches不可以被iTunes同步备份。同步iTunes 是需要花费时间的,所以为了减少同步的时间,可以考虑将一些比体积较大的文件而又不需要备份的文件放到Library/caches下将重要的数据存放到Documents下

3、tmp:提供一个创建临时文件的的地方。在应用退出时,该目录下的文件将被删除;也可能在应用不运行时被删除。保存应用程序再次启动过程中不需要的信息。

三、获取沙盒目录方法

//1、获取沙盒主目录

//firstWay

NSString *homePath1= NSHomeDirectory();

NSLog(@"homePath1:%@",homePath1);

//secondWay

NSString *homePath2 = NSHomeDirectoryForUser(NSUserName());

NSLog(@"homePath2:%@",homePath2);

//2、获取Documents目录

NSString *documentsPath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES).firstObject;

NSLog(@"documentsPath:%@",documentsPath);

//3、获取Library目录

NSString *librayPath = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES).firstObject;

NSLog(@"libraryPath:%@",librayPath);

//获取library/caches目录

NSString *cachesPath = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES).firstObject;

//4、获取tmp目录

NSString *tmpPath = NSTemporaryDirectory();

NSLog(@"tmpth:%@",tmpPath);

5、返回沙盒路径总方法

在数据存储方面,经常会用到存放路径,写一个返回路径的总方法,是很有必要的。

-(NSString *)gainFilePath:(NSString *)fileName fileDirectory:(NSSearchPathDirectory)directoryName

{

NSString *pathDirectory = NSSearchPathForDirectoriesInDomains(directoryName, NSUserDomainMask, YES).firstObject;

NSString *finalPath = [pathDirectory stringByAppendingPathComponent:fileName];

return finalPath;

}

NSString *filePath =  [self gainFilePath:@"nina.txt" fileDirectory:NSDocumentDirectory];

四、获取其他路径的方法

1、plist文件路径

NSString  *strDBPath = [[NSBundle mainBundle] pathForResource:@"Paylist" ofType:@"plist"];

相关文章

  • 补充笔记03-沙盒及获取资源路径

    沙盒及获取资源路径

  • iOS 获取沙盒及其它路径的总结

    一、沙盒机制 ios应用程序只能在为该应用程序创建的文件系统中读取或写入文件,不可以去其它地方访问,此区域称为沙盒...

  • iOS 文件操作

    iOS文件(沙盒目录,文件创建、移动、复制等) 目录获取获取沙盒的主目录路径: (NSString *)homeD...

  • iOS开发之沙盒机制

    沙盒 iOS系统,每个应用都有自己的沙盒,每个沙盒都是相互独立的,不能互相访问。 获取沙盒路径的代码: NSHom...

  • OC - 沙盒

    导读: 一、什么是沙盒机制 二、沙盒的特点 三、沙盒的结构组成 四、获取沙盒目录路径 一、什么是沙盒机制 iOS中...

  • Objective-C沙盒结构

    导读: 一、什么是沙盒机制二、沙盒的特点三、沙盒的结构组成四、获取沙盒目录路径 一、什么是沙盒机制 iOS中的沙盒...

  • iOS读写json文件

    一.获取沙盒路径 每个iOS应用都有自己专属的应用沙盒,应用沙盒就是文件系统中的目录。但是iOS系统会将每个应用的...

  • IOS沙盒 - OC

    沙盒: 沙盒包含: 沙盒路径获取的方法:

  • iOS关于数据持久化

    目录 一、什么是持久化 二、沙盒是什么 2.1 沙盒简介及获取沙盒路径 2.2 Documents 2.2 Lib...

  • iOS 8.0 访问沙盒目录

    iOS8之前访问沙盒的路径,通过NSHomedictionary()获取的家路径 /Users/xxxx/Libr...

网友评论

    本文标题:iOS 获取沙盒及其它路径的总结

    本文链接:https://www.haomeiwen.com/subject/moshattx.html