2014-09-03 88 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

相关问题