Получить имена файлов в папке iCloud Drive, которые еще не были загружены - PullRequest
0 голосов
/ 08 апреля 2020

Я пытаюсь получить имена всех файлов и папок в каталоге iCloud Drive:

import Foundation

let fileManager = FileManager.default
let directoryURL = URL(string: "folderPathHere")!

do {
    let directoryContents = try fileManager.contentsOfDirectory(at: directoryURL, includingPropertiesForKeys: nil, options: [.skipsSubdirectoryDescendants, .skipsHiddenFiles])
    for url in directoryContents {
        let fileName = fileManager.displayName(atPath: url.absoluteString)
        print(fileName)
    }
} catch let error {
    let directoryName = fileManager.displayName(atPath: directoryURL.absoluteString)
    print("Couldnt get contents of \(directoryName): \(error.localizedDescription)")
}

Похоже, что все файлы iCloud, которые не были загружены на устройство, не возвращаются URL.

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

fileManager.isUbiquitousItem(at: writePath)

Есть ли способ получить URL-адреса и имена этих файлов iCloud без их предварительной загрузки?

URL-адрес каталога - это защищенный URL-адрес, созданный из данных закладок на случай, если что-то изменится ( этот код опущен здесь для ясности).

Спасибо

1 Ответ

0 голосов
/ 10 апреля 2020

Нашел ответ. Я пропускал скрытые файлы с помощью .skipsHiddenFiles, но не загруженные файлы на самом деле являются скрытыми файлами с именем: .fileName.ext.iCloud.

Параметр удаления пропущенных скрытых файлов теперь работает, как и ожидалось.

...