iOS沙盒路径的查看和使用

摘要:
iPhone在重启时,会丢弃所有的tmp文件。查看方法:方法1、可以设置显示隐藏文件,然后在Finder下直接打开。打开资源库后找到/ApplicationSupport/iPhoneSimulator/文件夹。方法2、这种方法更方便,在Finder上点-˃前往-˃前往文件夹,输入/Users/username/Library/ApplicationSupport/iPhoneSimulator/前往。

1、模拟器沙盒目录

文件都在个人用户名文件夹下的一个隐藏文件夹里,中文叫资源库,他的目录其实是Library。

因为应用是在沙箱(sandbox)中的,在文件读写权限上受到限制,只能在几个目录下读写文件:

Documents:应用中用户数据可以放在这里,iTunes备份和恢复的时候会包括此目录

tmp:存放临时文件,iTunes不会备份和恢复此目录,此目录下文件可能会在应用退出后删除

Library/Caches:存放缓存文件,iTunes不会备份此目录,此目录下文件不会在应用退出删除

iTunes在与iPhone同步时,备份所有的Documents和Library文件。

iPhone在重启时,会丢弃所有的tmp文件。

查看方法:

方法1、可以设置显示隐藏文件,然后在Finder下直接打开。设置查看隐藏文件的方法如下:打开终端,输入命名

(1)显示Mac隐藏文件的命令:defaults write com.apple.finder AppleShowAllFiles -bool true

(2)隐藏Mac隐藏文件的命令:defaults write com.apple.finder AppleShowAllFiles -bool false

(3)输完单击Enter键,退出终端,重新启动Finder就可以了 重启Finder:鼠标单击窗口左上角的苹果标志-->强制退出-->Finder-->

现在能看到资源库文件夹了。

打开资源库后找到/Application Support/iPhone Simulator/文件夹。这里面就是模拟器的各个程序的沙盒目录了。

方法2、这种方法更方便,在Finder上点->前往->前往文件夹,输入/Users/username/Library/Application Support/iPhone Simulator/ 前往。

username这里写用户名。

代码查看目录:

NSString *path = NSHomeDirectory();//主目录

NSLog(@"NSHomeDirectory:%@",path);

NSString *userName = NSUserName();//与上面相同

NSString *rootPath = NSHomeDirectoryForUser(userName);

NSLog(@"NSHomeDirectoryForUser:%@",rootPath);

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

NSString *documentsDirectory=[paths objectAtIndex:0];//Documents目录

NSLog(@"NSDocumentDirectory:%@",documentsDirectory);

结果如下:

2013-09-03 20:31:27.210 ios那啥[8383:c07] NSHomeDirectory:/Users/wmm/Library/Application Support/iPhone Simulator/6.1/Applications/D803DBD2-9CB2-4D18-9152-6E9398EFF5DB

2013-09-03 20:31:27.210 ios那啥[8383:c07] NSHomeDirectoryForUser:/Users/wmm/Library/Application Support/iPhone Simulator/6.1/Applications/D803DBD2-9CB2-4D18-9152-6E9398EFF5DB

2013-09-03 20:31:27.211 ios那啥[8383:c07] NSDocumentDirectory:/Users/wmm/Library/Application Support/iPhone Simulator/6.1/Applications/D803DBD2-9CB2-4D18-9152-6E9398EFF5DB/Documents

自定义类返回各目录路径:

#import<Foundation/Foundation.h>

@interfaceICSandboxHelper : NSObject

+ (NSString *)homePath; // 程序主目录,可见子目录(3个):Documents、Library、tmp

+ (NSString *)appPath; // 程序目录,不能存任何东西

+ (NSString *)docPath; // 文档目录,需要ITUNES同步备份的数据存这里,可存放用户数据

+ (NSString *)libPrefPath; // 配置目录,配置文件存这里

+ (NSString *)libCachePath; // 缓存目录,系统永远不会删除这里的文件,ITUNES会删除

+ (NSString *)tmpPath; // 临时缓存目录,APP退出后,系统可能会删除这里的内容

+ (BOOL)hasLive:(NSString *)path; //判断目录是否存在,不存在则创建

#import"ICSandboxHelper.h"

@implementationICSandboxHelper

+ (NSString *)homePath{

returnNSHomeDirectory();

}

+ (NSString *)appPath

{

NSArray * paths = NSSearchPathForDirectoriesInDomains(NSApplicationDirectory, NSUserDomainMask, YES);

return[paths objectAtIndex:0];

}

+ (NSString *)docPath

{

NSArray * paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

return[paths objectAtIndex:0];

}

+ (NSString *)libPrefPath

{

NSArray * paths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);

return[[paths objectAtIndex:0] stringByAppendingFormat:@"/Preference"];

}

+ (NSString *)libCachePath

{

NSArray * paths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);

return[[paths objectAtIndex:0] stringByAppendingFormat:@"/Caches"];

}

+ (NSString *)tmpPath

{return[NSHomeDirectory() stringByAppendingFormat:@"/tmp"];

}

+ (BOOL)hasLive:(NSString *)path

{

if( NO == [[NSFileManager defaultManager] fileExistsAtPath:path] )

{

return[[NSFileManager defaultManager] createDirectoryAtPath:path

withIntermediateDirectories:YES

attributes:nil

error:NULL];

}

returnNO;

}

免责声明:文章转载自《iOS沙盒路径的查看和使用》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇在HTTP通讯过程中,是客户端还是服务端主动断开连接?centos7 openfiles问题下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

数据存储

iOS应用数据存储的常用方式XML属性列表(plist)归档Preference(偏好设置)NSKeyedArchiver归档(NSCoding)SQLite3Core Data应用沙盒每个iOS应用都有自己的应用沙盒(应用沙盒就是文件系统目录),与其他文件系统隔离。应用必须待在自己的沙盒里,其他应用不能访问该沙盒应用沙盒的文件系统目录,如下图所示(假设应...

iOS开发基础知识--碎片38

iOS开发基础知识--碎片38 iOS开发基础知识--碎片38 iOS开发基础知识--碎片38 1:FCUUID获取设备标识的运用 a:作者 githun地址 https://github.com/fabiocaccamo/FCUUID 因为里面还用到作者的另外一个类UICKeyChainStore地址:https://github.com/kishik...

4006701855苹果开发者热线停止使用后如何联系苹果客服入口介绍

随着6月5日一年一度的苹果 WWDC 开发者大会的召开。苹果更新的很多东西,苹果已经永久暂停4006701855中文开发者电话支持, 你打过去语音提示已更改联系方式。 从此遇到问题不能打4006701855这个电话去咨询了。 不过苹果那边还是有咨询服务,改了规则,以前是要主动打电话,现在可以被动要求,苹果客服打电话给你。 那怎么获得苹果开发者咨询服务呢...

iOS 当请求到的数据是double类型,会失去精准度,并且去掉小数点后的0

首先请求到的数据都会变成字符串,先将字符串转化为double类型 double fdouble = [str doubleValue]; 然后再设置小数点后的位数 [NSString stringWithFormat:@"%.1f", fdouble];  重点:  提供一个NSSing的扩展,传入需要保留的小数位,返回字符串。并且去掉末尾的0. #imp...

iOS 几种加密方法

iOS常见的几种加密方法 普通加密方法是讲密码进行加密后保存到用户偏好设置中 钥匙串是以明文形式保存,但是不知道存放的具体位置 1、base64加密 base64 编码是现代密码学的基础 基本原理: 原本是 8个bit 一组表示数据,改为 6个bit一组表示数据,不足的部分补零,每 两个0 用 一个 = 表示 用base64 编码之后,数据长度会变大,增...

OC常用数据类型大全解

UI基础OC常用数据类型 Block Block封装了一段代码,可以在任何时候执行 Block可以作为函数参数或者函数的返回值,而其本身又可以带输入参数或返回值。它和传统的函数指针很类似,但是有区别:block是inline(内联函数)的,并且默认情况下它对局部变量是只读的 苹果官方建议尽量多用block。在多线程、异步任务、集合遍历、集合排序、动画转场用...