Хорошо спасибо .. я выложу еще один вопрос

ючил типы документов для импорта или копирования файлов из других приложений в мое приложение. У меня есть несколько вопросов :

1- Где следует создать метод перемещения файлов из папки «Входящие в каталог документов»? это правильное место?func applicationWillEnterForeground(_ application: UIApplication)

2- При первом просмотре контроллера я получаю файлы из директории Document:

  func getFileListByDate() -> [String]? {

        let directory = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first!
        if let urlArray = try? FileManager.default.contentsOfDirectory(at: directory,
                                                                       includingPropertiesForKeys: [.contentModificationDateKey],
                                                                       options:.skipsHiddenFiles) {

            return urlArray.map { url in
                (url.lastPathComponent, (try? url.resourceValues(forKeys: [.contentModificationDateKey]))?.contentModificationDate ?? Date.distantPast)
                }
                .sorted(by: { $0.1 > $1.1 }) // sort descending modification dates
                .map { $0.0 } // extract file names

        } else {
            return nil
        }

    }

Но когда файл импортируется в мое приложение,Inbox папку (элемент) в моем табличном представлении, как я могу автоматически перемещать файлы изInbox вDocument каталог и удалить папку «Входящие»?

 manismku03 окт. 2017 г., 09:26
Ваш вопрос не очень понятен. Можно ли это прояснить?

Ответы на вопрос(1)

Решение Вопроса

вам нужно реализовать метод делегата

func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool {

и переместите URL-адрес в папку по вашему выбору в вашем приложении.

let url = url.standardizedFileURL  // this will strip out the private from your url
// if you need to know which app is sending the file or decide if you will open in place or not you need to check the options  
let openInPlace = options[.openInPlace] as? Bool == true
let sourceApplication = options[.sourceApplication] as? String
let annotation = options[.annotation] as? [String: Any]
// checking the options info
print("openInPlace:", openInPlace)
print("sourceApplication:", sourceApplication ?? "")
print("annotation:", annotation ?? "")

Перемещая файл из папки «Входящие» на целевой URL в вашем случае, в каталог документов, добавляя url.lastPathComponent:

do {
    try FileManager.default.moveItem(at: url, to: destinationURL)
    print(url.path)
    print("file moved from:", url, "to:", destinationURL)
    NotificationCenter.default.post(name: .updateSort, object: destination)
} catch {
    print(error)
    return false
}

return true
 Mc.Lover05 окт. 2017 г., 15:26
Спасибо, попробую, но один вопрос - как удалить папку «Входящие»?
 Leo Dabus05 окт. 2017 г., 15:26
@ Mc.Lover Нельзя. Но это не значит, что вам нужно показать это пользователю. Вы можете отфильтровать массив перед его отображением
 Mc.Lover05 окт. 2017 г., 15:37
Хорошо спасибо .. я выложу еще один вопрос
 Mc.Lover05 окт. 2017 г., 15:28
Так есть ли способ это скрыть? потому что я получаю файлы из папки Documents этим методомgetFileListByDate и это показывает мне и папки и файлы мне нужно, чтобы показать только файлы
 Leo Dabus05 окт. 2017 г., 15:29
Если вам просто нужно отобразить файлы, просто отфильтруйте все URL, которые являются каталогом

Ваш ответ на вопрос