如何获取网址中文件的网址?
我试过这些:
directoryContents = try FileManager.default.contentsOfDirectory(at: aURL, includingPropertiesForKeys: [URLResourceKey.isRegularFileKey], options: [])
和
...contentsOfDirectory(at: aURL, includingPropertiesForKeys: nil, options: []).filter{ $0.isFileURL })
两个结果都等于
...contentsOfDirectory(at: aURL, includingPropertiesForKeys: nil, options: [])
返回文件和文件夹列表,并获取没有任何过滤器和选项的列表。
此外,我试图仅通过URLResourceKey.isDirectoryKey
获取目录,但它不起作用。
如何获取没有目录的文件的URL?
答案 0 :(得分:7)
includingPropertiesForKeys
会在遍历目录时从网址检索指定键的信息,但它不是过滤器标准。
您必须filter
值
isDirectory
结果
let directoryContents = try FileManager.default.contentsOfDirectory(at: aURL, includingPropertiesForKeys: [.isDirectoryKey])
let filesOnly = directoryContents.filter { (url) -> Bool in
do {
let resourceValues = try url.resourceValues(forKeys: [.isDirectoryKey])
return !resourceValues.isDirectory!
} catch { return false }
}
print(filesOnly.count)
或者在带有hasDirectoryPath
let directoryContents = try FileManager.default.contentsOfDirectory(at: aURL, includingPropertiesForKeys: nil)
let filesOnly = directoryContents.filter { !$0.hasDirectoryPath }
print(filesOnly.count)
答案 1 :(得分:0)
我认为:
var urls = try! FileManager.default.contentsOfDirectory(at: localDocumentsURL, includingPropertiesForKeys: nil, options: [])
urls = urls.filter { $0.isFileURL }
在应用控制与应用相关的沙箱目录中存储内容的情况下,对于iOS来说是一个足够好的解决方案。