Pecker/Sources/PeckerKit/FileHandler.swift

24 lines
649 B
Swift

import Foundation
import Path
public func recursiveFiles(withExtensions exts: [String], at path: Path) -> [Path] {
if path.isFile {
if exts.contains(path.extension) {
return [path]
}
return []
} else if path.isDirectory {
var files: [Path] = []
do {
for entry in try path.ls() {
let list = recursiveFiles(withExtensions: exts, at: entry.path)
files.append(contentsOf: list)
}
} catch {
log("failed to path.ls: \(error.localizedDescription)", level: .warning)
}
return files
}
return []
}