fs.stat(path.join(readurl,filename),function(err, stats){
if (err) throw err;
//是文件
if(stats.isFile()){
var newUrl=remotePath+name+'/'+filename;
fileArr.push(newUrl);
writeFile(fileArr)
//是子目录
}else if(stats.isDirectory()){
var dirName = filename;
readFile(path.join(readurl,filename),name+'/'+dirName);
//利用arguments.callee(path.join())这种形式利用自身函数,会报错
//arguments.callee(path.join(readurl,filename),name+'/'+dirName);
}
});
});
});
}
// 写入到filelisttxt文件
function writeFile(data){
var data = data.join("n");
fs.writeFile(filePath+"/"+"filelist.txt",data+'n',function(err){
if(err) throw err;
console.log("写入成功");
});
}
当我们执行
node flielist.js就会生产filelist.txt,文件里面就包含了我们想要的路径。

有时,我们通常遇到删除不了的文件,由于文件纵深太长导致 rm _rf也删不了,但是我们通过nodejs可以办到:
var fs = require("fs");
var path = require("path");
deleteFolderRecursive = function(url) {
var files = [];
//判断给定的路径是否存在
if( fs.existsSync(url) ) {
//返回文件和子目录的数组
files = fs.readdirSync(url);
files.forEach(function(file,index){
// var curPath = url + "/" + file;
var curPath = path.join(url,file);
//fs.statSync同步读取文件夹文件,如果是文件夹,在重复触发函数
if(fs.statSync(curPath).isDirectory()) { // recurse
deleteFolderRecursive(curPath);
// 是文件delete file
} else {
fs.unlinkSync(curPath);
}
});
fs.rmdirSync(url);
}else{
console.log("给定的路径不存在,请给出正确的路径");
}
};
deleteFolderRecursive("./grunt");希望本文所述对大家nodejs程序设计有所帮助。









