2014-09-03 109 views
-1

我有一個ipad應用程序,其中我從服務器的UIWebView中顯示PDF文檔。我希望用戶能夠下載這些文檔,以便他們可以脫機閱讀它們。不過,我希望他們只在應用程序中讀取它。基本上我的問題是:是否可以有一個文件夾只能從應用程序訪問,而不能由用戶訪問。ios中的應用程序唯一可訪問的文件夾

+6

由於應用程序在沙盒模式下工作,這將是隻有你的應用程序無論如何,沒有別的訪問,因此你根本不需要做任何事情。 – Popeye 2014-09-03 08:06:07

+0

用戶將文件下載到他的ipad,甚至在他關閉應用程序後,他將能夠在以後訪問它,但如果他試圖在文檔文件夾上瀏覽該文件,該文件將從用戶隱藏。 – Codette 2014-09-03 08:11:00

+0

你有沒有測試過,它發生了?或者你問是否有可能?如果是的話,我該如何阻止它。由於iOS應用程序在iOS中工作的方式除非它們是越獄設備,否則無法讀取應用程序內的內容,就像應用程序無法讀取其他應用程序中的數據一樣,這就是爲什麼它被稱爲沙箱。 – Popeye 2014-09-03 08:14:51

回答

0

可以將其保存在應用程序包。

NSDate *date = [NSDate new]; 
NSString *docName = [NSString stringWithFormat:@"%lld.pdf", (long long)[date timeIntervalSince1970]]; 
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documentsDirectory = [paths objectAtIndex:0]; // Get documents folder 
dataPath = [documentsDirectory stringByAppendingPathComponent:docName]; 

編輯:acording您的意見的問題,我認爲,解決辦法是這樣的:

NSString *str = @"http://myserver.com/myfile.ext"; 
NSURL *url = [NSURL URLWithString:str]; 
NSData *content = [NSData dataWithContentsOfURL:url]; 
if (content) { 
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
    NSString *documentsDirectory = [paths objectAtIndex:0]; // Get documents folder 
    NSString *dataPath = [NSString stringWithFormat:@"%@/%@", documentsDirectory,@"myfile.ext"]; 
    [content writeToFile:dataPath atomically:YES]; 
} 
+0

這看起來像我一直在尋找的答案,但你在哪裏得到的文件?我有一個網址,我必須下載所需的文件,但我不知道如何實現它。通過我將docName更改爲我的文檔ID來自數據庫的方式。 – Codette 2014-09-03 10:49:02

+0

@tfeseas 1秒鐘,我會編輯迴應 – 2014-09-03 11:45:56

+0

@tfeseas我認爲它是你在找什麼。如果你想從任何你需要實現的地方獲取文件名 – 2014-09-03 11:53:10

相關問題