Node.js 文件系统模块(二)
打开文件
fs.open(path, flags[, mode], callback)
Flag | 描述 |
r | 以读取模式打开文件。如果文件不存在抛出异常。 |
r+ | 以读写模式打开文件。如果文件不存在抛出异常。 |
rs | 以同步的方式读取文件。 |
rs+ | 以同步的方式读取和写入文件。 |
w | 以写入模式打开文件,如果文件不存在则创建。 |
wx | 类似 'w',但是如果文件路径存在,则文件写入失败。 |
w+ | 以读写模式打开文件,如果文件不存在则创建。 |
wx+ | 类似 'w+', 但是如果文件路径存在,则文件读写失败。 |
a | 以追加模式打开文件,如果文件不存在则创建。 |
ax | 类似 'a', 但是如果文件路径存在,则文件追加失败。 |
a+ | 以读写追加模式打开文件,如果文件不存在则创建。 |
ax+ | 类似 'a+', 但是如果文件路径存在,则文件读取追加失败。 |
const fs=require('fs') fs.open('input.txt', 'r+', function(err, fd) { if (err) { return console.error(err); } console.log(fd); fs.writeFile(fd, '小童程序员', (err) => { if(err){ return console.log(err) } console.log('写入完成') }) });
Node.js 文件系统模块(三)
查看文件
fs.stat(path, callback)
var fs = require("fs"); fs.stat('input.txt', function (err, stats) { if (err) { return console.error(err); } console.log(stats); // 检测文件类型 console.log("是否为文件 ? " + stats.isFile()); console.log("是否为目录 ? " + stats.isDirectory()); });
删除文件
fs.unlink(path, callback)
fs.unlink('input.txt', function(err) { if (err) { return console.error(err); } console.log("文件删除成功!"); });
Node.js 文件系统模块(四)
1、创建目录
fs.mkdir(path[, options], callback)
var fs = require("fs"); // tmp 目录必须存在 console.log("创建目录 tmp/test"); fs.mkdir("./tmp/test",function(err){ if (err) { return console.error(err); } console.log("目录创建成功。"); });
fs.mkdir("./tmp/test",{ recursive: true },function(err){ if (err) { return console.error(err); } console.log("目录创建成功。"); });
2、读取目录
fs.readdir(path, callback)
var fs = require("fs"); console.log("查看 /tmp 目录"); fs.readdir("./tmp",function(err, files){ if (err) { return console.error(err); } files.forEach( function (file){ console.log( file ); }); });
3、删除目录
fs.rmdir(path, callback)
var fs = require("fs"); // 执行前创建一个空的 /tmp/test 目录 console.log("准备删除目录 ./tmp/test"); fs.rmdir("./tmp/test",function(err){ if (err) { return console.log(err); } });
提示:
删除目录,如果目录下面有下一级则报错
Node.js 路径模块
path 是Node.js的路径模块,用来处理路径。
path.dirname()
返回路径的目录部分
require('path').dirname('./test/something') // ./test require('path').dirname('./test/something/file.txt') // ./test/something
path.extname()
返回路径的扩展名部分
require('path').extname('./test/something') // '' require('path').extname('./test/something/input.txt') // '.txt'
path.isAbsolute()
如果是绝对路径,则返回 true。
require('path').isAbsolute('/test/something') // true require('path').isAbsolute('./test/something') // false
path.join()
连接路径的两个或多个部分
const name = '程序员' require('path').join('/', '小童', name) //'/小童/程序员'
path.parse()
解析对象的路径为组成其的片段:
root : 根路径。
dir : 从根路径开始的文件夹路径。
base : 文件名 + 扩展名
name : 文件名
ext : 文件扩展名
require('path').parse('/users/test.txt') //{ // root: '/', // dir: '/users', // base: 'test.txt', // ext: '.txt', // name: 'test' //}
path.relative()
接受 2 个路径作为参数。 基于当前工作目录,返回从第一个路径到第二个路径的相对路径。
require('path').relative('/Users/joe','/Users/joe/test.txt') //'test.txt' require('path').relative('/Users/joe','/Users/joe/something/test.txt') //'something/test.txt'
path.resolve()
获得相对路径的绝对路径计算
require('path').resolve('joe.txt') require('path').resolve('/etc', 'joe.txt') //'/etc/joe.txt'
Node.js【文件系统模块、路径模块 、连接 MySQL、nodemon、操作 MySQL】(三)-全面详解(学习总结---从入门到深化)(下):https://developer.aliyun.com/article/1420307