Я пытаюсь получить имена всех файлов и папок в каталоге 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-адрес с ограничением безопасности, созданный на основе данных закладок на тот случай, если это имеет какое-либо значение (этот код здесь опущен для ясности).
Спасибо
absoluteString
это не то же самое, чтоpath
. Вы должны использоватьurl.path
- person Leo Dabus   schedule 18.07.2020