如何将所有文档保存在iPhone中



我使用以下代码来获取文档

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
if([paths count] > 0)
{
    NSString *documentsDirectory = [paths objectAtIndex:0];
    NSLog(@"%@",documentsDirectory);
    NSError *error = nil;
    NSArray *documentArray = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:documentsDirectory error:&error];
    if(error)
    {
        NSLog(@"Could not get list of documents in directory, error = %@",error);
    }
    else
    {
        NSLog(@"Hello %@",documentArray);
        arrdocument = documentArray;
    }
}

但它只显示我的应用程序内的文档,而不显示应用程序外部的文档。

您无法访问其他应用程序中的文件:每个应用程序都是沙盒化的。

我建议您阅读Apple的文件系统基础知识:

每个应用程序都是一座孤岛

iOS 应用与文件系统的交互主要限于应用沙盒中的目录。在安装新应用期间,安装程序会为应用创建多个容器。每个容器都有特定的角色。捆绑容器保存应用的捆绑包,而数据容器保存应用程序和用户的数据。数据容器进一步划分为多个目录,应用可以使用这些目录对其数据进行排序和组织。App 还可能在运行时请求访问其他容器,例如 iCloud 容器。

这些容器构成了应用的文件系统主视图。

由于应用位于沙盒中,因此通常禁止应用访问或创建其容器之外的文件。当应用使用公共系统界面访问用户的联系人或音乐等内容时,会发生此规则的一个例外情况。在这些情况下,系统框架将处理读取或修改相应数据存储所需的任何与文件相关的操作。

您无法访问其他应用程序中的文件:是的。

但是Apple提供了设计基于NSDocument的应用程序的方法,以在沙盒之外共享文件,沙盒是具有根公共捆绑标识符的所有应用程序的通用共享文件夹。

除此之外,您还可以使用iCloud公共商店在其他应用程序(如Flicker,dropbox)之间共享数据。 以下是一些教程链接:

https://www.raywenderlich.com/12779/icloud-and-uidocument-beyond-the-basics-part-1

https://developer.apple.com/library/ios/documentation/DataManagement/Conceptual/DocumentBasedAppPGiOS/DocumentArchitectureiniOS/DocumentArchitectureiniOS.html

每个应用程序都是一座孤岛

iOS 应用与文件系统的交互主要限于应用沙盒内的目录。在安装新应用程序时,安装程序会创建许多应用的容器。每个容器都有特定的角色。捆绑包容器保存应用的捆绑包,而数据容器保存应用程序和用户的数据。数据容器是进一步划分为应用程序可用于的许多目录对其数据进行排序和组织。该应用程序还可能请求访问运行时的其他容器,例如 iCloud 容器。

https://developer.apple.com/library/ios/documentation/FileManagement/Conceptual/FileSystemProgrammingGuide/FileSystemOverview/FileSystemOverview.html

最新更新