我想要只获得子目录.这是我的数据结构.
根/
一个/
1.TXT
2.txt
b /
3.txt
4.txt
我想获取特定文件夹(root)中的目录.我在根文件路径中使用枚举器:
let enumerator = NSFileManager.defaultManager().enumeratorAtPath(filePath) for element in enumerator! { print(element) }
但是,它将迭代root中的每个文件.我怎样才能获得子目录(a&b)?
无需使用深枚举.只需获取contentsOfDirectoryAtURL并过滤返回的urls目录.
Xcode 8.2.1•Swift 3.0.2
extension URL { var isDirectory: Bool { return (try? resourceValues(forKeys: [.isDirectoryKey]))?.isDirectory == true } var subDirectories: [URL] { guard isDirectory else { return [] } return (try? FileManager.default.contentsOfDirectory(at: self, includingPropertiesForKeys: nil, options: [.skipsHiddenFiles]).filter{ $0.isDirectory }) ?? [] } }
用法:
let documentsDirectoryURL = try! FileManager.default.url(for: .documentDirectory, in: .userDomainMask, appropriateFor: nil, create: true) let subDirs = documentsDirectoryURL.subDirectories