iOS не может посетить папку группы приложений с помощью FileManager

Я использую следующий код для записи файла png в папку группы приложений для совместного использования между моим расширением общего ресурса и приложением, и я обнаружил, что запись в файл может быть успешной (я могу найти файл в моем терминале), но после записи , я использую contentOfDirectory, чтобы получить содержимое папки группы приложений, это не удастся и выдаст

Error Domain=NSCocoaErrorDomain Code=260 "The folder “435D6129-B964-46A4-A066-47133EFF832D” doesn’t exist." UserInfo={NSUserStringVariant=(
    Folder 

введите здесь описание изображения

потому что я могу писать в группу приложений, поэтому я думаю, что конфигурация группы приложений в порядке, но почему я не могу использовать ContentOfDirectory для получения содержимого каталога группы приложений?


person ximmyxiao    schedule 25.09.2020    source источник
comment
Проверьте, есть ли в вашем URL file://, если да, то это недопустимый путь   -  person Itay Brenner    schedule 25.09.2020
comment
... и чтобы это исправить, вы должны использовать .path, а не .absoluteString   -  person jtbandes    schedule 25.09.2020
comment
@jtbandes, спасибо! это точно проблема!   -  person ximmyxiao    schedule 25.09.2020


Ответы (1)


Использование URL.absoluteString вернет недопустимый путь, поскольку он содержит файловую схему file://.

Вы должны использовать URL.path, в вашем случае это будет:

let contents = try FileManager.default.contentsOfDirectory(atPath: groupURL.path)
person Itay Brenner    schedule 25.09.2020
comment
@ximmyxiao или просто используйте метод func contentsOfDirectory(at url: URL, includingPropertiesForKey:, options:) в вашем случае: FileManager.default.contentsOfDirectory(at: groupURL) - person Leo Dabus; 25.09.2020