Как получить все документы, сохраненные в 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;
}
}
Но это только показать документы в моей заявке, а не за пределами приложения.
3 ответа
Вы не можете получить доступ к файлам в других приложениях: каждое приложение находится в "песочнице".
Я предлагаю вам прочитать Основы файловой системы от Apple:
Каждое приложение - это остров
Взаимодействие приложения iOS с файловой системой ограничено в основном каталогами внутри песочницы приложения. Во время установки нового приложения программа установки создает несколько контейнеров для приложения. Каждый контейнер имеет определенную роль. Контейнер пакета содержит пакет приложения, тогда как контейнер данных содержит данные как для приложения, так и для пользователя. Контейнер данных далее разделен на несколько каталогов, которые приложение может использовать для сортировки и организации своих данных. Приложение также может запрашивать доступ к дополнительным контейнерам, например, к контейнеру iCloud, во время выполнения.
Эти контейнеры составляют основное представление приложения о файловой системе.
Поскольку приложение находится в "песочнице", приложению, как правило, запрещается получать доступ или создавать файлы вне своих контейнеров. Одно исключение из этого правила возникает, когда приложение использует общедоступные системные интерфейсы для доступа к таким вещам, как контакты пользователя или музыка. В этих случаях системные платформы обрабатывают любые связанные с файлами операции, необходимые для чтения или изменения соответствующих хранилищ данных.
Вы не можете получить доступ к файлам в других приложениях: ДА.
Но Apple предоставляет способ разработки приложения на основе NSDocument для обмена файлами вне песочницы, которая является общей общей папкой для всех приложений, имеющих общий корневой идентификатор пакета.
Кроме того, вы можете использовать iCloud public store также для обмена данными между другими приложениями (такими как Flicker, dropbox). ниже приведены некоторые учебные ссылки:
https://www.raywenderlich.com/12779/icloud-and-uidocument-beyond-the-basics-part-1
Каждое приложение - это остров
Взаимодействие приложения iOS с файловой системой ограничено в основном каталогами внутри песочницы приложения. Во время установки нового приложения программа установки создает несколько контейнеров для приложения. Каждый контейнер имеет определенную роль. Контейнер пакета содержит пакет приложения, тогда как контейнер данных содержит данные как для приложения, так и для пользователя. Контейнер данных далее разделен на несколько каталогов, которые приложение может использовать для сортировки и организации своих данных. Приложение также может запрашивать доступ к дополнительным контейнерам, например, к контейнеру iCloud, во время выполнения.