Swift 遍历目录文件(获取目录所有文件)方法及区别

取得目录下所有文件,示例函数:

static func getAllFilePath(_ dirPath: String) -> [String]? {
    var filePaths = [String]()
    
    do {
        let array = try FileManager.default.contentsOfDirectory(atPath: dirPath)
        
        for fileName in array {
            var isDir: ObjCBool = true
            
            let fullPath = "\(dirPath)/\(fileName)"
            
            if FileManager.default.fileExists(atPath: fullPath, isDirectory: &isDir) {
                if !isDir.boolValue {
                    filePaths.append(fullPath)
                }
            }
        }
        
    } catch let error as NSError {
        print("get file path error: \(error)")
    }
    
    return filePaths;
}

FileManager用来获取指定目录下的子项(文件或文件夹)列表的方法有两种:

open func contentsOfDirectory(atPath path: String) throws -> [String]
open func subpaths(atPath path: String) -> [String]?
区别是:

前者以非递归的方式获取子项列表,而后者以递归的方式获取子项列表。

你可能感兴趣的:(Swift 遍历目录文件(获取目录所有文件)方法及区别)