導航:首頁 > 文件教程 > ios沙盒導入文件

ios沙盒導入文件

發布時間:2023-02-15 09:10:04

① ios沙盒機制下,哪個文件夾是用來存放數據的

未越獄是不可能看得到內部文件夾的。最好的方法就是iTunes里找到暴風影音APP。然後下面會有一個文件共享。如果這個APP支持第三方文件導入導出就可以在這個選項里刪除裡面的第三方資源文件。如果沒有就說明這個APP不支持第三方資源

② iOS 沙盒存儲問題

1,iOS沙盒存儲三種模式
(1)Document
用於存儲用戶數據,該目錄下的所有文件會進行iCloud或iTunes備份,所以,蘋果建議將程序中建立的或在程序中瀏覽到的文件數據保存在該目錄下
1,獲取該目錄

(2)Library
該路徑下的文件夾,除Caches以外,都會被iTunes備份。這個目錄下有兩個子目錄:
1,獲取該目錄

Preferences:
包含應用程序的偏好設置文件。NSUserDefaults就是默認存放在此文件夾下面。
Caches:
iTunes不會備份此目錄,此目錄下文件不會在應用退出刪除。一般存放體積比較大,不是特別重要的資源,比如緩存數據。緩存數據在設備低存儲空間時可能會被刪除。
1,獲取該目錄

(3)tmp
目錄用於存放臨時文件,APP重新啟動時會清除這個路徑下的文件。該路徑下的文件不會被iTunes備份。一般用來保存臨時文件,比如:相機拍攝完成時的照片視頻都會被暫時保存到這個路徑
1,獲取該目錄

(二)對文件存儲刪除
1,在Document,library,tmp文件下新建文件夾並寫入文件

2,刪除對應的文件夾
//createPath新建文件夾路徑,刪除文件原理一樣同一個方法
//創建文件管理器

③ ios 怎麼把plist文件寫入沙盒

首先獲取文件路徑 NSString *path = [[NSBundle mainBundle] pathForResource:_filename ofType:@"plist"]; 指定路徑的話 NSString *path = [[[NSBundle mainBundle] bundlePath] :@"文件路徑這裡面"]; NSDictionary *dict =[NSDictionary dictionaryWithContentsOfFile:path]; 即可

④ iOS 怎麼從沙盒中載入 一個 zip 包和一個資源文件夾

這肯定的啊,因為用[UIImage imageNamed:question.icon]是直接從當前的項目中讀取文件,可以實現; 而NSString *path = [[NSBundle mainBundle] pathForResource:question.icon];是從沙盒路徑中讀取文件,只用question.icon是不夠的,應該加上當前的沙盒路徑,如果你的沙盒路徑中還有一個存放圖片的文件夾的話,還要加上這個文件夾的名字,question.icon應該改為: 沙盒路徑/文件夾名/question.icon 具體實現是這樣的: //程序包的根目錄(沙盒路徑) NSString *resourcePath = [[NSBundle mainBundle] resourcePath]; //完整的圖片路徑,如果圖片是放在文件夾中的話,還要在中間加上文件夾的路徑 NSString *imagepath = [resourcePath :@」question.icon「]; //可以列印路徑看看是什麼情況 NSlog(@「%@」,imagePath); UIImage *image = [UIImage imageWithContentsOfFile:imagePath];

⑤ ios 在arc模式下我將相冊圖片和視頻導入沙盒中 內存遞增且不會減下去 應該怎麼辦

當你存儲到沙盒中的圖片和內存過多時候你需要適當的時候進行沙盒內緩存清除,否則就會卡。

NSFileManager * fileManager = [[NSFileManager alloc]init];

[fileManager removeItemAtPath:@"你的文件路徑" error:nil];

⑥ ios怎樣取得沙盒中的具體的文件

在製作應用的時候經常用到沙盒路徑 存取文件
路徑的說明
Documents:應用中用戶數據可以放在這里,內iTunes備份和恢復的時候會包容括此目錄
tmp:存放臨時文件,iTunes不會備份和恢復此目錄,此目錄下文件可能會在應用退出後刪除
Library/Caches:存放緩存文件,iTunes不會備份此目錄,此目錄下文件不會在應用退出刪除

代碼來獲取Documents用戶數據路徑
[(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0]

用代碼來獲取Library/Caches緩存目錄(配置文件以及用戶緩存存放位置)
(NSLibraryDirectory, NSUserDomainMask, YES);

用代碼獲取tmp臨時目錄
[NSHomeDirectory() stringByAppendingFormat:@"/tmp"];//在系統主目錄下查找tmp文件夾

⑦ iOS 本地寫入、存儲數據,沙盒機制

iphone沙盒中有4個文件夾,documents、tmp、app、library。

(1)、定位Document 目錄

(2)、定位Library 目錄

(3)、定位Caches 目錄,Caches 目錄位於Library目錄下

使用只能定位Caches、Library、Documents目錄, tmp目錄,不能按照此方法獲得,此時可以採用NSHomeDirectory定位到應用程序主目錄,也就是Document 的上一層目錄:
NSString *temp = NSTemporaryDirectory();

獲取沙盒根目錄:NSHomeDirectory()
使用NSHomeDirectory()可以獲取到沙盒的根目錄,也就是Document的上一層。
利用NSHomeDirectory()我們可以獲取沙盒中的任意文件的路徑。
例如:獲取tmp的路徑如下所示:

如果創建文件夾,並創建子目錄,如下:

關於目錄/文件的其他操作:

⑧ iOS-沙盒機制-整合篇

--沙盒內部:

--內部文件作用:
-- Documents:保存應用運行時生成的需要持久化的數據,iTunes會自動備份該目錄。
蘋果建議將在應用程序中瀏覽到的文件數據保存在該目錄下。
-- Library:
Caches:
一般存儲的是緩存文件,例如圖片視頻等,此目錄下的文件不會再應用程序退出時刪除。
*在手機備份的時候,iTunes不會備份該目錄。
例如音頻,視頻等文件存放其中
Preferences:
保存應用程序的所有偏好設置iOS的Settings(設置),我們不應該直接在這里創建文件,
而是需要通過NSUserDefault這個類來訪問應用程序的偏好設置。
*iTunes會自動備份該文件目錄下的內容。
比如說:是否允許訪問圖片,是否允許訪問地理位置......
-- tmp:臨時文件目錄,在程序重新運行的時候,和開機的時候,會清空tmp文件夾。

1).獲取沙盒的Home目錄
//獲取根目錄
NSString homePath = NSHomeDirectory();
NSLog(@"Home目錄:%@",homePath);
2).獲取沙盒的Documents目錄
/
獲取Documents文件夾目錄,
@param NSDocumentDirectory 獲取Document目錄
@param NSUserDomainMask 是在當前沙盒范圍內查找
@param YES 展開路徑,NO是不展開
@return test.txt文件的路徑
/
NSString filePath =[[(NSDocumentDirectory,
NSUserDomainMask,YES)firstObject]:@"test.txt"];
3).獲取Library文件路徑
/

* 獲取Library目錄下文件路徑
*
* @param NSLibraryDirectory 獲取Library目錄
* @param NSUserDomainMask 在當前的沙盒范圍內查找
* @param YES 展開路徑,NO不展開路徑 *
* @return test.txt文件的路徑
/ NSString filePath = [[(NSLibraryDirectory,
NSUserDomainMask, YES)firstObject]:@"test.txt"];
4).獲取Library/Caches文件目錄
/

* 獲取Library目錄下文件路徑
*
* @param NSCachesDirectory 獲取Library/Caches目錄
* @param NSUserDomainMask 在當前的沙盒范圍內查找
* @param YES 展開路徑,NO不展開路徑 *
* @return test.txt文件的路徑
/NSString filePath = [[(NSCachesDirectory,
NSUserDomainMask, YES)firstObject]:@"test.txt"];
5).獲取Library/Preferences文件目錄
Preferences由系統維護,不需要我們手動的獲取文件路徑進行操作,而是需要藉助NSUserDefault來操作,但是我們是可以獲取到這個文件的。
/

* 獲取Library目錄下文件路徑
*
* @param NSLibraryDirectory 獲取Library目錄
* @param NSUserDomainMask 在當前的沙盒范圍內查找
* @param YES 展開路徑,NO不展開路徑 *
* @return test.txt文件的路徑
/
NSString filePath = [[(NSLibraryDirectory,
NSUserDomainMask, YES)firstObject]:@"Preferences"];
6).獲取tmp文件路徑
/

* 獲取tmp文件目錄下的文件路徑
*
* @return test.txt的文件路徑
*/
NSString *filePath = [NSTemporaryDirectory():@"test.txt"]
7).向沙盒中寫入文件
//向沙盒中寫入文件
NSString *documentsPathW = (NSDocumentDirectory,NSUserDomainMask, YES)[0];
//寫入文件
if (!documentsPathW) {
NSLog(@"目錄未找到");
}else {
NSString *filePaht = [documentsPath :@"test.txt"];
NSArray *array = [NSArray arrayWithObjects:@"code",@"change", @"world", @"OK", @"", @"是的", nil];
[array writeToFile:filePaht atomically:YES];}
8).向沙盒中讀取文件
//從沙盒中讀取文件
NSString *documentsPathR = (NSDocumentDirectory,NSUserDomainMask, YES)[0];
NSString *readPath = [documentsPathR :@"test.txt"];
NSArray *fileContent = [[NSArray alloc] initWithContentsOfFile:readPath];
NSLog(@"文件內容:%@",fileContent);

1).獲取應用程序包的路徑
NSString *imagePath = [NSBundle mainBundle].resourcePath;
-- 程序包文件,包含了資源文件和可執行文件AppName.app
2).獲取程序包中一個圖片資源路徑的方法(apple.png)
NSString *imagePath = [[NSBundle mainBundle]pathForResource:@"apple" ofType:@"png"];
注意:
1.imageWithname這種載入的方式的是有緩存的,第二次在載入時直接從內存中取出圖片,
這樣的話效率更高,但是會使得內存變得越來越大,通常使用在,圖片內存較小,
而且需要頻繁使用的地方。
2.NSBundle mainBundle 是通過獲取圖片的全路徑來載入圖片的,
不會有緩存,但是這樣每次就得重新載入,它也不會是在不是在使用完圖片後就釋放,
而是在下一次使用圖片的時候才會釋放,所以需要我們在使用完圖片後,手動來釋放內存。
3).將NSData類型的數據存儲到本地(以圖片為例)

⑨ 如何將文件放到沙盒目錄下面

IOS 從Resource文件夾下Copy文件到沙盒
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.
self.title = @"拷貝文件到Sandbox";

//文件類型
NSString * docPath = [[NSBundle mainBundle] pathForResource:@"save1" ofType:@"dat"];

// 沙盒Documents目錄
// NSString * appDir = [(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];

// 沙盒Library目錄
NSString * appDir = [(NSLibraryDirectory, NSUserDomainMask, YES) lastObject];
//appLib Library/Caches目錄
NSString *appLib = [appDir stringByAppendingString:@"/Caches"];

BOOL filesPresent = [self MissingFile:docPath toPath:appLib];
if (filesPresent) {
NSLog(@"OK");
}
else
{
NSLog(@"NO");
}

// 創建文件夾
NSString *createDir = [NSHomeDirectory() stringByAppendingString:@"/test"];
[self createFolder:createDir];

// 把文件拷貝到Test目錄
BOOL filesPresent1 = [self MissingFile:docPath toPath:createDir];
if (filesPresent1) {
NSLog(@"OK");
}
else
{
NSLog(@"NO");
}

}

/**
* @brief 把Resource文件夾下的save1.dat拷貝到沙盒
*
* @param sourcePath Resource文件路徑
* @param toPath 把文件拷貝到XXX文件夾
*
* @return BOOL
*/
- (BOOL)MissingFile:(NSString *)sourcePath toPath:(NSString *)toPath
{
BOOL retVal = YES; // If the file already exists, we'll return success…
NSString * finalLocation = [toPath :[sourcePath lastPathComponent]];
if (![[NSFileManager defaultManager] fileExistsAtPath:finalLocation])
{
retVal = [[NSFileManager defaultManager] ItemAtPath:sourcePath toPath:finalLocation error:NULL];
}
return retVal;
}

/**
* @brief 創建文件夾
*
* @param createDir 創建文件夾路徑
*/
- (void)createFolder:(NSString *)createDir
{
BOOL isDir = NO;
NSFileManager *fileManager = [NSFileManager defaultManager];
BOOL existed = [fileManager fileExistsAtPath:createDir isDirectory:&isDir];
if ( !(isDir == YES && existed == YES) )
{
[fileManager createDirectoryAtPath:createDir withIntermediateDirectories:YES attributes:nil error:nil];
}
}

閱讀全文

與ios沙盒導入文件相關的資料

熱點內容
php循環插入資料庫 瀏覽:492
文件歸類整理軟體 瀏覽:557
ps形狀放在哪個文件夾 瀏覽:263
南京網路資料庫怎麼找 瀏覽:963
電腦刪掉用戶帳號和數據怎麼恢復 瀏覽:344
得物app如何用微信支付 瀏覽:184
網路瀏覽加速器 瀏覽:788
蘋果7好端端開不了機 瀏覽:42
javadouble精度損失 瀏覽:308
手機截圖女孩圖標是什麼app 瀏覽:168
有一行數據為什麼不排序 瀏覽:535
直接調用js函數 瀏覽:835
天貓2045是什麼網站 瀏覽:189
提取文件夾里所有word文件 瀏覽:288
隔空投送一次能傳送多少個文件 瀏覽:347
拇指玩gpk文件安裝器 瀏覽:475
肖戰為那英打call數據是多少 瀏覽:699
網路優化的發展 瀏覽:719
3dmax打開高版本 瀏覽:177
文件字體一般多少 瀏覽:551

友情鏈接