Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/105.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ios中仅应用程序可访问的文件夹_Ios_Objective C_Iphone_Cocoa_Cocoa Touch - Fatal编程技术网

ios中仅应用程序可访问的文件夹

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 = [

我有一个ipad应用程序,在其中我可以从我的服务器在UIWebView中显示PDF文档。我希望用户能够下载这些文档,以便他们可以脱机阅读。但是,我希望他们只在应用程序中阅读。基本上,我的问题是:是否可能有一个文件夹只能从应用程序中访问,而不能由用户访问。

步骤:

  • 创建PDF文件的密码,并使用密码以编程方式打开PDF

  • 您可以为PDF文件制作自己的DRM

  • 请参阅以下链接:


    您可以将其保存在应用程序包中

    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因为我想这就是您要查找的。如果你想从任何你需要实现它的地方获取文件名,谢谢,它只是个废物@没有问题;)