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);
})


相关文章
|
前端开发 JavaScript Java
【Java进阶】JavaScript电灯开关实例:从理论到实践
这个例子展示了JavaScript的基本功能,包括操作HTML元素,监听事件,以及改变元素的样式。通过学习和理解这个例子,你可以了解到JavaScript在网页中的应用,以及如何使用JavaScript来创建交互式的网页。
234 13
|
前端开发 JavaScript NoSQL
使用 Node.js、Express 和 React 构建强大的 API
本文详细介绍如何使用 Node.js、Express 和 React 构建强大且动态的 API。从开发环境搭建到集成 React 前端,再到利用 APIPost 高效测试 API,适合各水平开发者。内容涵盖 Node.js 运行时、Express 框架与 React 库的基础知识及协同工作方式,还涉及数据库连接和前后端数据交互。通过实际代码示例,助你快速上手并优化应用性能。
|
Kubernetes API 网络安全
当node节点kubectl 命令无法连接到 Kubernetes API 服务器
当Node节点上的 `kubectl`无法连接到Kubernetes API服务器时,可以通过以上步骤逐步排查和解决问题。首先确保网络连接正常,验证 `kubeconfig`文件配置正确,检查API服务器和Node节点的状态,最后排除防火墙或网络策略的干扰,并通过重启服务恢复正常连接。通过这些措施,可以有效解决与Kubernetes API服务器通信的常见问题,从而保障集群的正常运行。
1083 17
|
JavaScript 前端开发 API
JavaScript中通过array.map()实现数据转换、创建派生数组、异步数据流处理、复杂API请求、DOM操作、搜索和过滤等,array.map()的使用详解(附实际应用代码)
array.map()可以用来数据转换、创建派生数组、应用函数、链式调用、异步数据流处理、复杂API请求梳理、提供DOM操作、用来搜索和过滤等,比for好用太多了,主要是写法简单,并且非常直观,并且能提升代码的可读性,也就提升了Long Term代码的可维护性。 只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
|
JSON 缓存 JavaScript
深入浅出:使用Node.js构建RESTful API
在这个数字时代,API已成为软件开发的基石之一。本文旨在引导初学者通过Node.js和Express框架快速搭建一个功能完备的RESTful API。我们将从零开始,逐步深入,不仅涉及代码编写,还包括设计原则、最佳实践及调试技巧。无论你是初探后端开发,还是希望扩展你的技术栈,这篇文章都将是你的理想指南。
|
JavaScript 前端开发 安全
盘点原生JS中目前最没用的几个功能API
在JavaScript的发展历程中,许多功能与API曾风光无限,但随着技术进步和语言演化,部分功能逐渐被淘汰或被更高效的替代方案取代。例如,`with`语句使代码作用域复杂、可读性差;`void`操作符功能冗余且影响可读性;`eval`函数存在严重安全风险和性能问题;`unescape`和`escape`函数已被`decodeURIComponent`和`encodeURIComponent`取代;`arguments`对象则被ES6的剩余参数语法替代。这些变化体现了JavaScript不断优化的趋势,开发者应紧跟技术步伐,学习新技能,适应新技术环境。
301 10
|
JSON JavaScript 前端开发
深入浅出Node.js:从零开始构建RESTful API
在数字化时代的浪潮中,后端开发作为连接用户与数据的桥梁,扮演着至关重要的角色。本文将引导您步入Node.js的奇妙世界,通过实践操作,掌握如何使用这一强大的JavaScript运行时环境构建高效、可扩展的RESTful API。我们将一同探索Express框架的使用,学习如何设计API端点,处理数据请求,并实现身份验证机制,最终部署我们的成果到云服务器上。无论您是初学者还是有一定基础的开发者,这篇文章都将为您打开一扇通往后端开发深层知识的大门。
403 12
|
JavaScript 前端开发 API
Vue.js 3:深入探索组合式API的实践与应用
Vue.js 3:深入探索组合式API的实践与应用
|
JavaScript NoSQL API
深入浅出Node.js:从零开始构建RESTful API
在数字化时代的浪潮中,后端开发如同一座灯塔,指引着数据的海洋。本文将带你航行在Node.js的海域,探索如何从一张白纸到完成一个功能完备的RESTful API。我们将一起学习如何搭建开发环境、设计API结构、处理数据请求与响应,以及实现数据库交互。准备好了吗?启航吧!
|
JavaScript
Node.js创建目录实例
webgame项目经常要维护更新,先在创建一个批次号,然后上传至更新服务器上然后再分别copy文件至各服务器的一个临时目录,然后更新结束后删除该临时目录。而本地需要根据批次号创建一系统的文件夹目录。之前是先手动创建一个批次号文件夹,然后写一个bat,创建更新批次相应的文件夹。
945 0