问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

为什么ios中的沙盒路径找不到文件

发布网友 发布时间:2022-04-22 13:34

我来回答

2个回答

热心网友 时间:2023-10-15 23:37

  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-6E9398EFF5DB2013-09-03 20:31:27.210 ios那啥[8383:c07] NSHomeDirectoryForUser:/Users/wmm/Library/Application Support/iPhone Simulator/6.1/Applications/D803DBD2-9CB2-4D18-9152-6E9398EFF5DB2013-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;
}

热心网友 时间:2023-10-15 23:37

说明你没把文件拷贝进去。。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
干货| 手把手教你搭建一套OpenStack云平台 口碑最好的切菜刀 什么材质的菜刀最好用 菜刀的种类和用途 张九龄三首古诗词赏析(风格清淡,语言素练) word文字底纹颜色怎么设置在哪 东施效颦这则语言告诉人们一个怎样的道理,欲意又是什么呢 胜芳买房多少钱 胜芳谁最有钱 315儿童智能手表是哪个牌子 孕囊看男女准不准 iOS越狱和沙盒机制的关系 ios10 entitlements是什么文件 苹果的沙盒机制到底是什么,为什么那些第三方软件都用 iOS是封闭式操作系统吗? iOS怎么获取并移除沙盒中Documents文件夹下的所有文件 ios和安卓有什么不同 什么是game center 沙盒? iosapp的沙盒是什么 ios什么时候用沙盒和什么时候用数据库 ios的应用沙箱运行是怎么一回事 方正大标宋简体是什么意思? 请问:这是什么? E8400搭配什么显卡才能体现出它的性能 这是哪一种宋体? 为什么文泰在家里的电脑好用,装到单位的电脑里就显示让我插入光盘,是电脑系统的事吗? 跟大标宋很像,但是横笔画比大标宋要粗是什么字体? 字体可以商用吗? 标题:二号不加粗方正大标宋简体(第5行居中)什么意思 请问“这是”一词在整句中是什么意思? 三维和四维有什么区别? 在ios沙盒机制下下面哪个文件夹是用来存放数据的 iOS有哪些好玩的沙盒游戏? 在ios沙盒机制下,哪个文件用来存放数据 ios 存储沙盒偏好设置和其他的区别 在ios沙盒机制下,哪个文件夹用来存放数据 港股通资金什么时间可用? 港股通卖出后资金什么时候可以用 同一工作组内连上了共享的打印机,却无法打印 港股通卖了后资金什么时候回帐户 办公室的共享打印机,能连接,为什么打印不了呢? 港股通卖出港股的资金当日可用于买入港股吗 打印机共享成功但不打印不出来 港股通t+0卖出股票资金什么时候到位 网络打印机已经共享了但是无法打印! 酷睿2双核 E8400和什么显卡搭配最好 微信请确认你我的好友关系,是什么意思? 请确认你和他的好友关系是否正常 微信给好友转账时,提示请确认和她的关系,是怎么回事 微信请确认好友关系是否正常啥意思 请确认你和他的好友关系是否正常