-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdsfFileTree.js
More file actions
36 lines (36 loc) · 819 Bytes
/
dsfFileTree.js
File metadata and controls
36 lines (36 loc) · 819 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
var path = require('path')
let fs = require('fs')
let { sep } = path
function dfs(dir) {
let stack = []
let result = []
// let startPoint = fs.readdirSync(path)
stack.push(dir)
result.push(dir)
while (stack.length > 0) {
let point = stack[0]
stack.shift()
if(point.includes("git")){
continue
}
let stat = fs.statSync(point)
if (stat.isFile()) {
result.push(point)
}
if (stat.isDirectory()) {
console.log(point);
let files = fs.readdirSync(point)
for (let node of files) {
var filedir = path.join(point, node)
let stat = fs.statSync(filedir)
if(stat.isDirectory()) {
stack.push(filedir)
}else {
result.push(node)
}
}
}
}
return result
}
console.log(dfs(path.resolve('.')))