ios沙盒裡面有電影怎麼找到
A. 在ios沙盒機制下,下面哪個文件
1、iOS沙盒機制
iOS應用程序只能在為該改程序創建的文件系統中讀取文件,不可以去其它地方訪問,此區域被成為沙盒,所以所有的非代碼文件都要保存在此,例如圖像,圖標,聲音,映像,屬性列表,文本文件等。
1.1、每個應用程序都有自己的存儲空間
1.2、應用程序不能翻過自己的圍牆去訪問別的存儲空間的內容
1.3、應用程序請求的數據都要通過許可權檢測,假如不符合條件的話,不會被放行。
通過這張圖只能從表層上理解sandbox是一種安全體系,應用程序的所有操作都要通過這個體系來執行,其中核心內容是:sandbox對應用程序執行各種操作的許可權限制。
2、打開模擬器沙盒目錄
下面看看模擬器的沙盒文件夾在mac電腦上的什麼位置。
文件都在個人用戶名文件夾下的一個隱藏文件夾里,中文叫資源庫,他的目錄其實是Library。
2.1 方法1、可以設置顯示隱藏文件,然後在Finder下直接打開。設置查看隱藏文件的方法如下:打開終端,輸入命名
顯示Mac隱藏文件的命令:defaults write com.apple.finder AppleShowAllFiles -bool true
隱藏Mac隱藏文件的命令:defaults write com.apple.finder AppleShowAllFiles -bool false
輸完單擊Enter鍵,退出終端,重新啟動Finder就可以了
重啟Finder:滑鼠單擊窗口左上角的蘋果標志-->強制退出-->Finder-->
現在能看到資源庫文件夾了。
打開資源庫後找到/Application Support/iPhone Simulator/文件夾。這裡面就是模擬器的各個程序的沙盒目錄了。
2.2 方法2、這種方法更方便,在Finder上點->前往->前往文件夾,輸入/Users/username/Library/Application Support/iPhone Simulator/ 前往。
username這里寫你的用戶名。
3、目錄結構
默認情況下,每個沙盒含有3個文件夾:Documents, Library 和 tmp。因為應用的沙盒機制,應用只能在幾個目錄下讀寫文件
Documents:蘋果建議將程序中建立的或在程序中瀏覽到的文件數據保存在該目錄下,iTunes備份和恢復的時候會包括此目錄
Library:存儲程序的默認設置或其它狀態信息;
Library/Caches:存放緩存文件,iTunes不會備份此目錄,此目錄下文件不會在應用退出刪除
tmp:提供一個即時創建臨時文件的地方。
iTunes在與iPhone同步時,備份所有的Documents和Library文件。
iPhone在重啟時,會丟棄所有的tmp文件。
我們創建一個IosSandbox的項目來展開沙盒和文件讀寫等操作的練習。
創建後找到模擬器上對應的目錄,
B. iOS 沙盒內的目錄結構和作用
沙盒目錄下有三個文件夾:Documents、Library、temp以及一個.app包!該目錄下就是應用程序的沙盒,應用程序只能訪問該目錄下的文件夾!!!
1、Documents 目錄:您應該將所有的應用程序數據文件寫入到這個目錄下。這個目錄用於存儲用戶數據。該路徑可通過配置實現iTunes共享文件。可被iTunes備份。
2、AppName.app 目錄:這是應用程序的程序包目錄,包含應用程序的本身。由於應用程序必須經過簽名,所以您在運行時不能對這個目錄中的內容進行修改,否則可能會使應用程序無法啟動。
3、Library 目錄:這個目錄下有兩個子目錄:
Preferences 目錄:包含應用程序的偏好設置文件。您不應該直接創建偏好設置文件,而是應該使用NSUserDefaults類來取得和設置應用程序的偏好.
Caches 目錄:用於存放應用程序專用的支持文件,保存應用程序再次啟動過程中需要的信息。
可創建子文件夾。可以用來放置您希望被備份但不希望被用戶看到的數據。該路徑下的文件夾,除Caches以外,都會被iTunes備份。
4、tmp 目錄:這個目錄用於存放臨時文件,保存應用程序再次啟動過程中不需要的信息。該路徑下的文件不會被iTunes備份。
C. iOS怎麼獲取並移除沙盒中Documents文件夾下的所有文件
1、將所有文件存入數組
NSString*string=[(NSDocumentDirectory,NSUserDomainMask,YES)objectAtIndex:0];
NSFileManager*fileManager=[NSFileManagerdefaultManager];
NSArray*tempFileList=[[NSArrayalloc]initWithArray:[:stringerror:nil]];
2、移除所有文件
NSString*DocumentsPath=[NSHomeDirectory():@"Documents"];
NSDirectoryEnumerator*enumerator=[[NSFileManagerdefaultManager]enumeratorAtPath:DocumentsPath];
for(NSString*fileNameinenumerator){
[[NSFileManagerdefaultManager]removeItemAtPath:[DocumentsPath:fileName]error:nil];
}
3、移除所有png文件
NSString*extension=@"png";
NSFileManager*fileManager=[NSFileManagerdefaultManager];
NSArray*paths=(NSDocumentDirectory,NSUserDomainMask,YES);
NSString*documentsDirectory=[pathsobjectAtIndex:0];
NSArray*contents=[:documentsDirectoryerror:nil];
NSEnumerator*enumerator=[contentsobjectEnumerator];
NSString*filename;
while((filename=[enumeratornextObject])){
if([[filenamepathExtension]isEqualToString:extension]){
[fileManagerremoveItemAtPath:[documentsDirectory:filename]error:nil];
}
}
D. ios 真機測試怎樣查看沙盒文件
連上你的設備,windows-》devices,選擇你的設備,右邊installed apps,選擇你的APP,download container
下載的文件,顯示包內容,即是沙盒內的文件s
E. 為什麼ios中的沙盒路徑找不到文件
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 = (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 = (NSApplicationDirectory, NSUserDomainMask, YES);
return [paths objectAtIndex:0];
}
+ (NSString *)docPath
{
NSArray * paths = (NSDocumentDirectory, NSUserDomainMask, YES);
return [paths objectAtIndex:0];
}
+ (NSString *)libPrefPath
{
NSArray * paths = (NSLibraryDirectory, NSUserDomainMask, YES);
return [[paths objectAtIndex:0] stringByAppendingFormat:@"/Preference"];
}
+ (NSString *)libCachePath
{
NSArray * paths = (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;
}
F. 蘋果手機在手機迅雷上下的電影只能在迅雷上看嗎,比如用暴風影音搜索本地文件為什麼搜不到在手機迅雷里下
只能在迅雷上看,蘋果每個軟體的存放地址都是隔離開的,也就是說暴風影音軟體下載的數據文件,迅雷軟體是沒有辦法訪問的。
IOS採用的是沙盒機制運行APP,在迅雷上下載的電影要想在暴風影音上播放的話,有兩種方法:
(1)適用於越獄,打開ifile,找到迅雷的文件夾,然後把下載的電影移動到暴風影音的文件夾或者是打開方式選擇暴風影音。
(2)沒有越獄只能用這種方法,手機連接電腦,打開ITUNES或者PP助手等管理軟體,選擇迅雷的文件夾,將其導出然後導入暴風影音的文件夾。
G. 蘋果手機上用迅雷下的電影暴風影音查不到
ios採用的是沙盒機制運行app,所以你在迅雷上下載的電影要想在暴風影音上播放的話,有兩種方法
適用於越獄,打開ifile,找到迅雷的文件夾,然後把下載的電影移動到暴風影音的文件夾或者是打開方式選擇暴風影音
沒有越獄只能用這種方法,手機連接電腦,打開itunes或者PP助手等管理軟體,選擇迅雷的文件夾,將其導出然後導入暴風影音的文件夾
H. ios怎樣取得沙盒中的具體的文件
在製作應用的時候經常用到沙盒路徑 存取文件
路徑的說明
Documents:應用中用戶數據可以放在這里,iTunes備份和恢復的時候會包括此目錄
tmp:存放臨時文件,iTunes不會備份和恢復此目錄,此目錄下文件可能會在應用退出後刪除
Library/Caches:存放緩存文件,iTunes不會備份此目錄,此目錄下文件不會在應用退出刪除
用代碼來獲取Documents用戶數據路徑
[(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0]
用代碼來獲取Library/Caches緩存目錄(配置文件以及用戶緩存存放位置)
(NSLibraryDirectory, NSUserDomainMask, YES);
用代碼獲取tmp臨時目錄
[NSHomeDirectory() stringByAppendingFormat:@"/tmp"];//在系統主目錄下查找tmp文件夾