文档如下:
Documents目录:这是文档目录。有关应用的所有数据文件应该写入到这个目录下,这个目录用于存储用户数据或者其他应该定期备份的信息。iTunes会同步改应用程序的此文件内容,适合存储一些重要的数据。
简介:
iOS是由苹果公司开发的移动 *** 作系统。苹果公司最早于2007年1月9日的Macworld大会上公布这个系统,最初是设计给iPhone使用的,后来陆续套用到iPod touch、iPad上。iOS与苹果的macOS *** 作系统一样,属于类Unix的商业 *** 作系统。
原本这个系统名为iPhone OS,因为iPad,iPhone,iPod touch都使用iPhone OS,所以2010年WWDC上宣布改名为iOS(iOS为美国Cisco公司网络设备 *** 作系统注册商标,苹果改名已获得Cisco公司授权)。
iOS11之前由于iOS的沙盒机制我们无法看到应用里边的任何文件。在我们应用的沙盒里边,有三个文件夹供我们使用来存储文件。分别是Documents、Library、tmp。
在iOS11 以后新增了一个“文件”APP,集中管理iOS上应用内创建的文件,以及各个云盘服务中保存的文件。在iOS工程infoplist中设置Application supports iTunes file sharing和Supports opening documents in place这两个选项为YES(默认为NO),就可以将该应用的沙盒路径Documents文件暴露在“文件”APP中。
由于ios8改了一系列的文件路径,将应用的程序文件与用户文件分别放到了两个路径,使得查找一个应用的后台文件变得困难。不过查看应用后台文件的方法还是有的:
工具:
iFile
icleaner pro
步骤:
1、打开“iCleaner pro”,下拉找到“自定义文件和文件夹”开关,如图,设置为打开状态。
2、在“添加项目”,即如图框选的地方点一下。
3、在“路径”这里点一下放大镜图标。
进入var/mobile/Containers路径,这里面
Bundle文件夹是应用程序文件目录
Data文件夹是应用的用户文件目录
举个例子,想用ifile找到天天动听的用户文件目录,在里面把里面下载的一首歌《气球》cut一下,粘贴到一个新建的文件夹“music”里面。 *** 作如下:
进入路径:var/mobile/Containers/Data/Application
如图,找到“天天动听”,记下下面一组数字字母的前几个,比如小编记“7E001”
4、使用iFile进入路径:var/mobile/Containers/Data/Application
找“7E001”开头的文件夹,这就是天天动听的用户文件目录。
打开“7E001”文件夹,里面的documents——Download就是下载音乐存放的路径。
新建了一个名为“music”的文件夹,把Download里的《气球》剪切——粘贴到music里面就OK了。
--沙盒内部:
--内部文件作用:
-- Documents:保存应用运行时生成的需要持久化的数据,iTunes会自动备份该目录。
苹果建议将在应用程序中浏览到的文件数据保存在该目录下。
-- Library:
Caches:
一般存储的是缓存文件,例如视频等,此目录下的文件不会再应用程序退出时删除。
在手机备份的时候,iTunes不会备份该目录。
例如音频,视频等文件存放其中
Preferences:
保存应用程序的所有偏好设置iOS的Settings(设置),我们不应该直接在这里创建文件,
而是需要通过NSUserDefault这个类来访问应用程序的偏好设置。
iTunes会自动备份该文件目录下的内容。
比如说:是否允许访问,是否允许访问地理位置
-- tmp:临时文件目录,在程序重新运行的时候,和开机的时候,会清空tmp文件夹。
1)获取沙盒的Home目录
//获取根目录
NSString homePath = NSHomeDirectory();
NSLog(@"Home目录:%@",homePath);
2)获取沙盒的Documents目录
/ 获取Documents文件夹目录,
@param NSDocumentDirectory 获取Document目录
@param NSUserDomainMask 是在当前沙盒范围内查找
@param YES 展开路径,NO是不展开
@return testtxt文件的路径
/
NSString filePath =[[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
NSUserDomainMask,YES)firstObject]stringByAppendingPathComponent:@"testtxt"];
3)获取Library文件路径
/
获取Library目录下文件路径
@param NSLibraryDirectory 获取Library目录
@param NSUserDomainMask 在当前的沙盒范围内查找
@param YES 展开路径,NO不展开路径
@return testtxt文件的路径
/ NSString filePath = [[NSSearchPathForDirectoriesInDomains(NSLibraryDirectory,
NSUserDomainMask, YES)firstObject]stringByAppendingPathComponent:@"testtxt"];
4)获取Library/Caches文件目录
/
获取Library目录下文件路径
@param NSCachesDirectory 获取Library/Caches目录
@param NSUserDomainMask 在当前的沙盒范围内查找
@param YES 展开路径,NO不展开路径
@return testtxt文件的路径
/NSString filePath = [[NSSearchPathForDirectoriesInDomains(NSCachesDirectory,
NSUserDomainMask, YES)firstObject]stringByAppendingPathComponent:@"testtxt"];
5)获取Library/Preferences文件目录
Preferences由系统维护,不需要我们手动的获取文件路径进行 *** 作,而是需要借助NSUserDefault来 *** 作,但是我们是可以获取到这个文件的。
/
获取Library目录下文件路径
@param NSLibraryDirectory 获取Library目录
@param NSUserDomainMask 在当前的沙盒范围内查找
@param YES 展开路径,NO不展开路径
@return testtxt文件的路径
/
NSString filePath = [[NSSearchPathForDirectoriesInDomains(NSLibraryDirectory,
NSUserDomainMask, YES)firstObject]stringByAppendingPathComponent:@"Preferences"];
6)获取tmp文件路径
/
获取tmp文件目录下的文件路径
@return testtxt的文件路径
/
NSString filePath = [NSTemporaryDirectory()stringByAppendingPathComponent:@"testtxt"]
7)向沙盒中写入文件
//向沙盒中写入文件
NSString documentsPathW = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES)[0];
//写入文件
if (!documentsPathW) {
NSLog(@"目录未找到");
}else {
NSString filePaht = [documentsPath stringByAppendingPathComponent:@"testtxt"];
NSArray array = [NSArray arrayWithObjects:@"code",@"change", @"world", @"OK", @"", @"是的", nil];
[array writeToFile:filePaht atomically:YES];}
8)向沙盒中读取文件
//从沙盒中读取文件
NSString documentsPathR = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES)[0];
NSString readPath = [documentsPathR stringByAppendingPathComponent:@"testtxt"];
NSArray fileContent = [[NSArray alloc] initWithContentsOfFile:readPath];
NSLog(@"文件内容:%@",fileContent);
1)获取应用程序包的路径
NSString imagePath = [NSBundle mainBundle]resourcePath;
-- 程序包文件,包含了资源文件和可执行文件AppNameapp
2)获取程序包中一个资源路径的方法(applepng)
NSString imagePath = [[NSBundle mainBundle]pathForResource:@"apple" ofType:@"png"];
注意:
1imageWithname这种加载的方式的是有缓存的,第二次在加载时直接从内存中取出,
这样的话效率更高,但是会使得内存变得越来越大,通常使用在,内存较小,
而且需要频繁使用的地方。
2NSBundle mainBundle 是通过获取的全路径来加载的,
不会有缓存,但是这样每次就得重新加载,它也不会是在不是在使用完后就释放,
而是在下一次使用的时候才会释放,所以需要我们在使用完后,手动来释放内存。
3)将NSData类型的数据存储到本地(以为例)
以上就是关于ios游戏中的documents文档是什么全部的内容,包括:ios游戏中的documents文档是什么、iOS开发 向“文件APP”曝露Documents数据、iOS8越狱后用iFile找APP的数据的路径是什么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)