nodejs 判断是文件还是文件夹
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nodejs 判断是文件还是文件夹相关的知识,希望对你有一定的参考价值。
参考技术A var fs = require("fs");var stat = fs.lstatSync("./xx");
console.log(stat.isDirectory());
如果返回结果为true则为文件夹。本回答被提问者采纳
nodejs之fs模块
目录
- 1、引入fs模块
- 2、常用方法
- 1、fs.stat 检测是文件还是目录
- 2、fs.mkdir 创建目录
- 3、fs.readdir 读取目录
- 4、fs.rmdir 删除目录
- 5、fs.writeFile 创建写入文件
- 6、fs.appendFile 文件追加内容
- 7、fs.readFile 读取文件
- 8、fs.unlink 删除文件
- 9、fs.rename 移动文件or重命名文件
- 10、判断服务器上有没有upload目录,如果没有就创建这个目录,如果有就不做操作。
- 11、检测某个目录下面有哪些子目录及文件,找出该目录下所有的目录,然后放到数组中
- 12、fs.createReadStream(path[, options])读取流
- 13、fs.createWriteStream(path[, options])写入流
- 14、pipe管道流
- 15、文件系统标志
1、引入fs模块
const fs = require(‘fs‘);
2、常用方法
1、fs.stat 检测是文件还是目录
- 检测文件or目录是否存在
- 检测是文件还是目录
fs.stat(‘./test.html‘,(err,data)=>{
if(err){
console.log(err);
return;
}
console.log(data.isFile);
console.log(data);
})
2、fs.mkdir 创建目录
fs.mkdir(‘./css‘,(err)=>{
if(err){
console.log(err);
return;
}
console.log("创建成功");
})
3、fs.readdir 读取目录
读取当前文件夹下面的文件及目录,不能读取子文件及子目录
fs.readdir("./css",(err,data)=>{
if(err){
console.log(err);
return;
}
console.log(data);
})
4、fs.rmdir 删除目录
只能删除空目录
fs.rmdir("./css/base",(err)=>{
if(err){
console.log(err);
return;
}
console.log("删除目录成功");
})
5、fs.writeFile 创建写入文件
如果创建时该文件存在,执行替换操作;如果创建时该文件不存在,创建文件并执行写入操作。
fs.writeFile(‘./css/index.css‘,"hello1",(err)=>{
if(err){
console.log(err);
return;
}
console.log(‘创建文件成功‘);
})
6、fs.appendFile 文件追加内容
fs.appendFile("./css/index.css","
body{color:red}",(err)=>{
if(err){
console.log(err);
return;
}
console.log("appendFile成功");
})
7、fs.readFile 读取文件
fs.readdir("./css",(err,data)=>{
if(err){
console.log(err);
return;
}
console.log(data);
})
8、fs.unlink 删除文件
fs.unlink("./css/base/base.css",(err)=>{
if(err){
console.log(err);
return;
}
console.log("删除文件成功");
})
9、fs.rename 移动文件or重命名文件
fs.rename("./css/aaa.css","./css/bbb.css",(err)=>{
if(err){
console.log(err);
return;
}
console.log("移动文件成功");
})
10、判断服务器上有没有upload目录,如果没有就创建这个目录,如果有就不做操作。
let path="./base"
fs.stat(path,(err,data)=>{
//报错即目录不存在,创建目录
if(err){
console.log(err);
mkdir(path);
return;
}
/*未报错,判断是目录还是文件:
如果是目录,不做任何操作;
如果是文件,删除文件再创建同名目录;*/
if(data.isFile){
unlinkfs(path);
mkdir(path);
}else{
console.log("目录已存在");
}
})
function mkdir(dir){
fs.mkdir(dir,(err)=>{
if(err){
console.log(err);
return;
}
console.log("创建目录成功");
})
}
function unlinkfs(file){
fs.unlink(file,(err)=>{
if(err){
console.log(err);
return;
}
console.log("删除文件成功");
})
}
11、检测某个目录下面有哪些子目录及文件,找出该目录下所有的目录,然后放到数组中
const fs = require(‘fs‘);
let path = "./test";
let dirArr = [];
fs.readdir(path,(err,data)=>{
if(err){
console.log(err);
return;
}
/*for(var i=0;i<data.length;i++){
// console.log(data[i]); //打印目录
fs.stat(path+"/"+data[i],(e,d)=>{
// console.log(data[i]); //打印undefined
if(d.isDirectory){
dirArr.push(data[i]);
}
})
}*/
data.forEach((item)=>{
console.log(item); //打印目录
fs.stat(path+"/"+item,(e,d)=>{
console.log(+d); //打印NAN
if(d.isDirectory){
dirArr.push(item);
}
})
})
})
//异步问题
12、fs.createReadStream(path[, options])读取流
const fs = require(‘fs‘);
let readStream = fs.createReadStream("./test.txt");
let cont =0;
let str="";
readStream.on("data",(data)=>{
str+=data;
cont++;
})
readStream.on("end",()=>{
console.log(str);
console.log(cont);
})
readStream.on("err",(err)=>{
console.log(err);
})
13、fs.createWriteStream(path[, options])写入流
const fs = require(‘fs‘);
let data=`人之初,性本善。性相近,习相远。
苟不教,性乃迁。教之道,贵以专。
昔孟母,择邻处。子不学,断机杼。
窦燕山,有义方。教五子,名俱扬。
养不教,父之过。教不严,师之惰。
子不学,非所宜。幼不学,老何为。`
let witerStream = fs.createWriteStream("./test.txt");
witerStream.write(data,‘utf-8‘);
witerStream.end();//标记文件末尾
witerStream.on("finish",()=>{
console.log("写入完成");
})
witerStream.on("error",(err)=>{
console.log(err);
})
console.log("程序处理完成");
14、pipe管道流
const fs = require(‘fs‘);
let readStream = fs.createReadStream("./fs.js");
let writeStream = fs.createWriteStream("./output.js");
readStream.pipe(writeStream);
15、文件系统标志
flags 参数可以是以下值:
r 以读取模式打开文件。如果文件不存在抛出异常。
r+ 以读写模式打开文件。如果文件不存在抛出异常。
rs 以同步的方式读取文件。
rs+ 以同步的方式读取和写入文件。
w 以写入模式打开文件,如果文件不存在则创建。
wx 类似 ‘w‘,但是如果文件路径存在,则文件写入失败。
w+ 以读写模式打开文件,如果文件不存在则创建。
wx+ 类似 ‘w+‘, 但是如果文件路径存在,则文件读写失败。
a 以追加模式打开文件,如果文件不存在则创建。
ax 类似 ‘a‘, 但是如果文件路径存在,则文件追加失败。
a+ 以读取追加模式打开文件,如果文件不存在则创建。
ax+ 类似 ‘a+‘, 但是如果文件路径存在,则文件读取追加失败。
以上是关于nodejs 判断是文件还是文件夹的主要内容,如果未能解决你的问题,请参考以下文章