Node.js API实例讲解——FS 文件夹操作

简介: Node.js API实例讲解——FS 文件夹操作

FS 文件夹操作


创建文件夹


在当前目录下,创建一个mydir的文件夹


异步实现代码:

var fs = require("fs");
fs.mkdir("mydir",function(err){
    console.log(err)
})

同步实现代码:  

var fs = require("fs");
fs.mkdirSync("mydir");

删除文件夹


异步实现代码:

var fs = require("fs");
fs.rmdir("mydir",function(err){
    console.log(err);
})

同步实现代码:  

fs.rmdirSync("mydir");

文件夹重命名


把当前目录下mydir文件夹改为mydir2名,如果没有mydir文件夹,那么会抛出异常err。


同步实现代码

var fs = require("fs");

fs.rename("mydir","mydir2",function(err){
    console.log(err);
})

异步实现代码:  

var fs = require("fs");  
fs.renameSync("mydir","mydir2")

查看文件夹内有哪些文件和文件夹。


查看当前目录下有哪些文件,异步实现代码:  

var fs = require("fs");

fs.readdir(".",function(err,files){
    console.log(files)
})

回调函数中,err表示异常信息,比如文件夹不存在,files并不是文件本身,而是一个数组,数组里储存当前目录下有哪些文件夹和文件的字符串名称。

同步实现代码:

var fs = require("fs");

var files = fs.readdirSync(".");
console.log(files);

查看文件夹、文件属性状态

var fs = require("fs");

fs.stat(".",function(err,stats){
    console.log("stats.isFile() ->" + stats.isFile())
    console.log("stats.isDirectory() -> " + stats.isDirectory())
    console.log("stats.isBlockDevice() ->" + stats.isBlockDevice())
    console.log("stats.isCharacterDevice()" + stats.isCharacterDevice())
    console.log("stats.isSymbolicLink() -> "+stats.isSymbolicLink())
    console.log("stats.isFIFO() ->" + stats.isFIFO())
    console.log("stats.isSocket()-> " + stats.isSocket())
})

查看当前文件夹状态属性


异步实现代码1 :


回调函数的stats是一个fs.Stats对象,这个对象常用的方法是stats.isDirectory()和stats.isFile(),可以判断是文件还是文件夹。


异步实现代码2 :

var fs = require("fs");

fs.lstat(".",function(err,stats){
    console.log("stats.isFile() ->" + stats.isFile())
    console.log("stats.isDirectory() -> " + stats.isDirectory())
    console.log("stats.isBlockDevice() ->" + stats.isBlockDevice())
    console.log("stats.isCharacterDevice()" + stats.isCharacterDevice())
    console.log("stats.isSymbolicLink() -> "+stats.isSymbolicLink())
    console.log("stats.isFIFO() ->" + stats.isFIFO())
    console.log("stats.isSocket()-> " + stats.isSocket())
})
var fs = require("fs");
var fd = fs.openSync(".","r");    
fs.fstat(fd,function(err,stats){
    console.log("stats.isFile() ->" + stats.isFile())
    console.log("stats.isDirectory() -> " + stats.isDirectory())
    console.log("stats.isBlockDevice() ->" + stats.isBlockDevice())
    console.log("stats.isCharacterDevice()" + stats.isCharacterDevice())
    console.log("stats.isSymbolicLink() -> "+stats.isSymbolicLink())
    console.log("stats.isFIFO() ->" + stats.isFIFO())
    console.log("stats.isSocket()-> " + stats.isSocket())
})
var fs = require("fs");
var stats = fs.statSync(".")
console.log("stats.isFile() ->" + stats.isFile())
console.log("stats.isDirectory() -> " + stats.isDirectory())
console.log("stats.isBlockDevice() ->" + stats.isBlockDevice())
console.log("stats.isCharacterDevice()" + stats.isCharacterDevice())
console.log("stats.isSymbolicLink() -> "+stats.isSymbolicLink())
console.log("stats.isFIFO() ->" + stats.isFIFO())
console.log("stats.isSocket()-> " + stats.isSocket())
var fs = require("fs");
var stats = fs.lstatSync(".")
console.log("stats.isFile() ->" + stats.isFile())
console.log("stats.isDirectory() -> " + stats.isDirectory())
console.log("stats.isBlockDevice() ->" + stats.isBlockDevice())
console.log("stats.isCharacterDevice()" + stats.isCharacterDevice())
console.log("stats.isSymbolicLink() -> "+stats.isSymbolicLink())
console.log("stats.isFIFO() ->" + stats.isFIFO())
console.log("stats.isSocket()-> " + stats.isSocket())
var fs = require("fs");
var fd = fs.openSync(".","r");    
var stats = fs.fstatSync(fd)
console.log("stats.isFile() ->" + stats.isFile())
console.log("stats.isDirectory() -> " + stats.isDirectory())
console.log("stats.isBlockDevice() ->" + stats.isBlockDevice())
console.log("stats.isCharacterDevice()" + stats.isCharacterDevice())
console.log("stats.isSymbolicLink() -> "+stats.isSymbolicLink())
console.log("stats.isFIFO() ->" + stats.isFIFO())
console.log("stats.isSocket()-> " + stats.isSocket())

监听文件夹

var fs = require("fs");
fs.watch(".",function(eventname,filename){
    console.log(eventname);
    console.log(filename);
});
var fs = require("fs");

var watch = fs.watch(".");

watch.on("change",function(eventname,filename){
    console.log(eventname);
    console.log(filename);
})


相关文章
|
12天前
|
XML 前端开发 JavaScript
JavaScript进阶 - AJAX请求与Fetch API
【7月更文挑战第3天】前端开发中的异步基石:AJAX与Fetch。AJAX,使用XMLHttpRequest,处理跨域、回调地狱和错误处理。Fetch,基于Promise,简化请求,但需注意默认无跨域头和HTTP错误处理。两者各有优劣,理解其问题与解决策略,能提升前端应用的性能和用户体验。
|
7天前
|
开发框架 监控 JavaScript
使用Node.js 框架( Express.js)来创建一个简单的 API 端点
【7月更文挑战第5天】使用Node.js 框架( Express.js)来创建一个简单的 API 端点
11 3
|
9天前
|
JavaScript API
js【最佳实践】遍历数组的八种方法(含数组遍历 API 的对比)for,forEach,for of,map,filter,reduce,every,some
js【最佳实践】遍历数组的八种方法(含数组遍历 API 的对比)for,forEach,for of,map,filter,reduce,every,some
21 1
|
6天前
|
XML 前端开发 JavaScript
JavaScript进阶 - AJAX请求与Fetch API
【7月更文挑战第9天】JavaScript进阶:AJAX与Fetch API对比。AJAX用于异步数据交换,XMLHttpRequest API复杂,依赖回调。Fetch API是现代、基于Promise的解决方案,简化请求处理。示例:`fetch('url').then(r => r.json()).then(data => console.log(data)).catch(err => console.error(err))`。注意点包括检查HTTP状态、错误处理、CORS、Cookie和超时。Fetch提高了异步代码的可读性,但需留意潜在问题。
|
10天前
|
JavaScript API 索引
JS【详解】Set 集合 (含 Set 集合和 Array 数组的区别,Set 的 API,Set 与 Array 的性能对比,Set 的应用场景)
JS【详解】Set 集合 (含 Set 集合和 Array 数组的区别,Set 的 API,Set 与 Array 的性能对比,Set 的应用场景)
28 0
|
10天前
|
JSON JavaScript API
JS【详解】Map (含Map 和 Object 的区别,Map 的常用 API,Map与Object 的性能对比,Map 的应用场景和不适合的使用场景)
JS【详解】Map (含Map 和 Object 的区别,Map 的常用 API,Map与Object 的性能对比,Map 的应用场景和不适合的使用场景)
15 0
|
11天前
|
JavaScript API
前后端数据交互.js文件的axios的写法,想要往后端发送数据,页面注入API,await的意思是同步等待服务器数据,并返回,axios注入在其他页面,其他页面调用的时候,同步作用
前后端数据交互.js文件的axios的写法,想要往后端发送数据,页面注入API,await的意思是同步等待服务器数据,并返回,axios注入在其他页面,其他页面调用的时候,同步作用
文本vitepress,如何设置背景图,如何插入背景图,如何插入logo,为了放背景图片,我们要新建pubilc的文件夹,插入logo要在config.js中进行配置,注意细节,在添加背景时,注意格式
文本vitepress,如何设置背景图,如何插入背景图,如何插入logo,为了放背景图片,我们要新建pubilc的文件夹,插入logo要在config.js中进行配置,注意细节,在添加背景时,注意格式
|
12天前
|
Web App开发 JavaScript 前端开发
js 调试—— 【控制台】debugger语句 、 命令行API
js 调试—— 【控制台】debugger语句 、 命令行API
14 0
|
12天前
|
JavaScript 前端开发 Java