iOS-沙盒路径

转载 2016年05月31日 16:45:39

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>

@interface ICSandboxHelper : 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"

@implementation ICSandboxHelper

+ (NSString *)homePath{
    return NSHomeDirectory();
}

+ (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];
    }
    
    return NO;
}

iOS经典讲解之获取沙盒文件路径写入和读取简单对象

#import @interface RootViewController : UIViewController@end

iOS 存储沙盒路径小结

作为iOS的沙盒机制SandBox是一种安全体系,每一个应用都有一个沙盒文件夹,提供app读取里面的文件, 其他的应用无法访问这里面的资源,主要包括图片,声音,属性列表,对象等。 Document...
  • rpf2014
  • rpf2014
  • 2016年10月27日 13:48
  • 152

iOS经典讲解之获取沙盒文件路径写入和读取简单对象

#import "RootViewController.h"    @interface RootViewController ()    @end    实现文件:  @implementation...

iOS中的沙盒机制(SandBox)以及获取路径方法

iOS中的沙盒机制(SandBox)是一种安全体系,它规定了应用程序只能在为该应用创建的文件夹内读取文件,不可以访问其他地方的内容。所有的非代码文件都保存在这个地方,比如图片、声音、属性列表和文本文件...

iOS清除缓存详细解析、app文件路径操作,真机沙盒理解

实现清除缓存,首先要了解是要清除哪里的缓存,所以我们先对一个app里面的文件有所了解。 查看app文件内容的方法:打开Xcode ->工具栏Window ->Devices ->选择设备->单击项目...

iOS基础之沙盒机制-路径获取

一.什么是沙盒? 每一个iOS应用程序都会为自己创建一个文件系统目录(文件夹),这个独立,封闭,安全的空间,叫做沙盒. 注:1.每一个应用程序都拥有一个应用程序沙盒 2.应用程序沙盒就是一个文件...

iOS沙盒路径的查看和使用

1、模拟器沙盒目录 文件都在个人用户名文件夹下的一个隐藏文件夹里,中文叫资源库,他的目录其实是Library。 因为应用是在沙箱(sandbox)中的,在文件读写权限上受到限制,只能在几个目录...

iOS开发技巧-工程Product下生成的.app,.a文件沙盒路径

Xcode编译之后Product目录中的.app文件去哪儿了? 为什么你show in finder找不到该 app文件呢? 下面帮你找到: 我们使用Xcode编写ios或者Mac OS X应用时,会...

iOS沙盒(二)路径获取

iOS沙盒(二)目录结构   我们看看如何获取应用程序沙盒目录。包括真机的沙盒的目录。 1、获取程序的Home目录 NSString *ho...
  • czncdms
  • czncdms
  • 2014年08月07日 18:34
  • 443

iOS 模拟器 沙盒 文件夹路径

当我们使用iOS模拟器时,如果需要查看shu j
  • rnclcl
  • rnclcl
  • 2014年08月06日 14:27
  • 1254
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:iOS-沙盒路径
举报原因:
原因补充:

(最多只允许输入30个字)