zoukankan      html  css  js  c++  java
  • iOS沙盒目录

    1、模拟器沙盒目录
    文件都在个人用户名文件夹下的一个隐藏文件夹里,中文叫资源库,其目录/Users/用户名/Library。

     

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

    Documents:应用中用户数据可以放在这里,iTunes备份和恢复的时候会包括此目录
    tmp:存放临时文件,iTunes不会备份和恢复此目录,此目录下文件可能会在应用退出后删除
    Library/Caches:存放缓存文件,iTunes不会备份此目录,此目录下文件不会在应用退出删除

    iTunes在与iPhone同步时,备份所有的Documents和Library文件。
    iPhone在重启时,会丢弃所有的tmp文件。

     

    //主目录路径
    NSString *path = NSHomeDirectory();
    等价
    NSString *rootPath = NSHomeDirectoryForUser(NSUserName()); 
    
    //Documents目录
    NSString *documentsPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];

     

     

    2、查看方法:
    方法一、可以设置显示隐藏文件,然后在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/文件夹。这里面就是模拟器的各个程序的沙盒目录了。
    方法二、这种方法更方便,在Finder上点->前往->前往文件夹,输入/Users/用户名/Library/Application Support/iPhone Simulator/  前往。

     

    3、快速获取目录类:

     

    @interface FilePathManager : NSObject
    
    + (NSString *)homePath;     // 程序主目录,可见子目录(3个):Documents、Library、tmp
    + (NSString *)appPath;        // 程序目录,不能存任何东西
    + (NSString *)docPath;        // 文档目录,需要ITUNES同步备份的数据存这里,可存放用户数据
    + (NSString *)libPreferencePath;    // 配置目录,配置文件存这里
    + (NSString *)libCachePath;    // 缓存目录,系统永远不会删除这里的文件,ITUNES会删除
    + (NSString *)tmpPath;        // 临时缓存目录,APP退出后,系统可能会删除这里的内容
    + (BOOL)hasLive:(NSString *)path; //判断目录是否存在,不存在则创建
    
    @end

     

    #import "FilePathManager.h"
    
    @implementation FilePathManager
    
    + (NSString *)homePath{
        return NSHomeDirectory();
    }
    
    + (NSString *)appPath
    {
        return [NSSearchPathForDirectoriesInDomains(NSApplicationDirectory, NSUserDomainMask, YES) lastObject];
    }
    
    + (NSString *)docPath
    {
        return [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
    }
    
    + (NSString *)libraryPath {
        return [NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES) lastObject];
    }
    
    + (NSString *)libPreferencePath
    {
        return [[FilePathManager libraryPath] stringByAppendingFormat:@"/Preference"];
    }
    
    
    
    + (NSString *)libCachePath
    {
        return [[FilePathManager libraryPath] 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;
    }
    
    @end

     

  • 相关阅读:
    vue-router的基本使用
    SQL Server加密存储过程的破解
    IIS绑定Active Directory账号自动登录网站的方法
    .Net Install类的Install、Commit等事件触发顺序
    正态分布公式
    HDU4417 Super Mario
    CodeChef
    Gym101630C Connections
    CF916C
    CF912D Fishes
  • 原文地址:https://www.cnblogs.com/LyChen/p/5040014.html
Copyright © 2011-2022 走看看