Swift遍历文件夹中的文件

这篇文章之前已经发过,但是使用的如下代码,后来又找到更好的解决方案,所以更新一下,推荐使用更新过的。
先看一下之前的版本,如下段所示:

/// (obsolete) 获取指定文件夹下的所有文件名
/// - parameter path: 文件夹路径
/// - returns: 所有文件名数组
static func findFiles(path: String) -> [String] {
    var files = [String]()
    let fileManager = NSFileManager.defaultManager()
    let enumerator: NSDirectoryEnumerator = fileManager.enumeratorAtPath(path)!
    while let element = enumerator.nextObject() as? String {
        files.append(element)
    }
    return files
}

下面是更新过的,更新过的代码看起来更简洁,并且支持文件扩展名过滤:

/// (recommended) 获取指定文件夹下符合扩展名要求的所有文件名
/// - parameter path: 文件夹路径
/// - parameter filterTypes: 扩展名过滤类型(注:大小写敏感)
/// - returns: 所有文件名数组
static func findFiles(path: String, filterTypes: [String]) -> [String] {
    do {
        let files = try NSFileManager.defaultManager().contentsOfDirectoryAtPath(path)
        if filterTypes.count == 0 {
            return files
        }
        else {
            let filteredfiles = NSArray(array: files).pathsMatchingExtensions(filterTypes)
            return filteredfiles
        }
    }
    catch {
        return []
    }
}
Swift遍历文件夹中的文件_第1张图片
Swift Dev for MacOS

你可能感兴趣的:(Swift遍历文件夹中的文件)