ios中仅应用程序可访问的文件夹
我有一个ipad应用程序,在其中我可以从我的服务器在UIWebView中显示PDF文档。我希望用户能够下载这些文档,以便他们可以脱机阅读。但是,我希望他们只在应用程序中阅读。基本上,我的问题是:是否可能有一个文件夹只能从应用程序中访问,而不能由用户访问。步骤:ios中仅应用程序可访问的文件夹,ios,objective-c,iphone,cocoa,cocoa-touch,Ios,Objective C,Iphone,Cocoa,Cocoa Touch,我有一个ipad应用程序,在其中我可以从我的服务器在UIWebView中显示PDF文档。我希望用户能够下载这些文档,以便他们可以脱机阅读。但是,我希望他们只在应用程序中阅读。基本上,我的问题是:是否可能有一个文件夹只能从应用程序中访问,而不能由用户访问。步骤: 创建PDF文件的密码,并使用密码以编程方式打开PDF 您可以为PDF文件制作自己的DRM 请参阅以下链接: 您可以将其保存在应用程序包中 NSDate *date = [NSDate new]; NSString *docName = [
您可以将其保存在应用程序包中
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];
编辑:根据您的评论问题,我认为解决方案如下:
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];
}
由于应用程序在沙盒模式下工作,因此只能通过应用程序进行访问,而无需其他操作,所以你根本不需要做任何事情。用户会将文件下载到他的ipad上,即使在他关闭应用程序后,他也可以在以后访问它,但如果用户试图在“文档”文件夹中浏览该文件,则该文件将对用户隐藏。你测试过这一点吗?或者你是在问是否可能,如果可能,我该如何阻止它。由于应用程序在iOS中的工作方式,除非它们是越狱设备,否则任何东西都无法读取应用程序中的内容,就像你的应用程序无法读取其他应用程序中的数据一样,这就是为什么它被称为沙盒。用户可以在Mac上使用其他工具访问pdf,如果你想防止这种情况发生,最好对文件进行加密。@tfeseas是的,所以。有什么问题吗?阅读每个应用程序都有自己的文档文件夹,该文件夹包含在应用程序本身中,因此您可以在脱机时存储和访问。我不确定我是否看到了你的问题。这似乎是我一直在寻找的答案,但你从哪里得到文件?我得到了一个必须从中下载请求文件的url,但我不知道如何实现它。顺便说一下,我将docName更改为来自数据库的文档id。@t因为我想这就是您要查找的。如果你想从任何你需要实现它的地方获取文件名,谢谢,它只是个废物@没有问题;)