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


相关文章
|
4天前
|
设计模式 JavaScript API
Vue.js的provide/inject API实现了依赖注入
【5月更文挑战第17天】Vue.js的provide/inject API实现了依赖注入,允许父组件向深层子组件传递依赖,降低耦合,提高代码可维护性和测试性。通过provide选项提供依赖,如`provide: {foo: 'foo', bar: this.bar}`,子组件通过inject选项接收,如`inject: ['foo', 'bar']`。适用于跨组件共享数据、插件开发和高阶组件。然而,应谨慎使用以防止过度复杂化代码结构。
13 0
|
1天前
|
Web App开发 存储 开发框架
使用Node.js构建RESTful API
【5月更文挑战第20天】本文指导使用Node.js和Express构建RESTful API。首先确保安装了Node.js,然后初始化项目,安装Express框架。在`app.js`中创建API,定义GET路由`/api/users`返回用户列表。运行服务器并测试API,最后讨论如何扩展API和提升其功能。这是一个构建RESTful API的基础入门教程。
|
4天前
|
JavaScript
js中如何使用工厂方式和构造函数创建对象,web开发项目实例
js中如何使用工厂方式和构造函数创建对象,web开发项目实例
|
4天前
|
Web App开发 JavaScript 前端开发
解决Vue.js Devtools未检测到Vue实例的问题
解决Vue.js Devtools未检测到Vue实例的问题
|
6天前
|
Kubernetes 安全 API
Kubernetes学习-集群搭建篇(三) Node配置完善和API概述
Kubernetes学习-集群搭建篇(三) Node配置完善和API概述
Kubernetes学习-集群搭建篇(三) Node配置完善和API概述
|
6天前
|
缓存 监控 JavaScript
Node.js中构建RESTful API的最佳实践
【4月更文挑战第30天】本文介绍了在Node.js中构建RESTful API的最佳实践:选择合适的框架(如Express、Koa)、设计清晰的API接口(遵循HTTP动词和资源路径)、实现认证授权(JWT、OAuth 2.0)、错误处理、限流缓存、编写文档和测试,以及监控性能优化。这些实践有助于创建健壮、可维护和易用的API。
|
6天前
|
JavaScript API 开发者
深入了解Node.js的文件系统:Node.js文件系统API的使用与探索
【4月更文挑战第30天】本文深入探讨了Node.js的文件系统API,介绍了如何引入`fs`模块进行文件操作。内容包括异步读取和写入文件、删除文件、创建目录以及使用文件流进行高效操作。此外,还提到了文件系统的监视功能,帮助开发者全面掌握在Node.js中处理文件和目录的方法。
|
6天前
|
弹性计算 运维 Serverless
Serverless 应用引擎产品使用之在阿里函数计算中,使用阿里云API或SDK从函数计算调用ECS实例的服务如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
48 4
|
6天前
|
API 数据库
工作流JBPM操作API启动实例&查询任务
工作流JBPM操作API启动实例&查询任务
15 0
|
4天前
|
监控 安全 数据挖掘
Email 接口API有哪些?具体分析一下阿里云和AOK的优点
本文介绍了常见的Email接口API,如阿里云邮件推送、AOKSend、SendGrid、Mailgun和Amazon SES。阿里云API以其高稳定性和数据分析功能脱颖而出,支持批量发送和多语言;而AOKSend API以易于集成、高安全性和优秀客户支持为亮点。企业在选择时应考虑自身需求和预算,以优化邮件营销效果。