当前位置:  开发笔记 > IOS > 正文

使用Swift获取子目录

如何解决《使用Swift获取子目录》经验,为你挑选了1个好方法。

我想要只获得子目录.这是我的数据结构.

根/

一个/

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)?



1> Leo Dabus..:

无需使用深枚举.只需获取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

推荐阅读
pan2502851807
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有