关于flags
fs.readFile()读取一个文件
可以传递三个参数第一个是路径,第二个是编码方式,第三个是回调函数,
如果写了编码方式传过来的就不是一个Buffer,就是编码过后的东西
读取文件内容
fs.readFile('/etc/passwd', 'utf8', callback);
fs.writeFile()写入一个文件
如果文件不存在就会新建一个,如果目录不存在就会报错
async function test() {
await fs.promises.writeFile(filename, "dsajkldsa", {
flag: "a",
});
//最后一个表示配置{flag:“a”}表示追加
fs.readFile(filename, (err, content) => {
console.log(content.toString("utf-8"));
});
}
fs.stat()获取文件状态
获取传入文件的状态
也可以传入目录
目录的size为0,目录记录一个指针,指针指向其中文件的地址,打开目录其实是通过指针找到文件的位置
async function test() {
const status = await fs.promises.stat(filename);
console.log(status);
}
test();
//输出结果
Stats {
dev: 1544704498,
mode: 33206,
nlink: 1,
uid: 0,
gid: 0,
rdev: 0,
blksize: 4096,
ino: 7036874417856700,
size: 47680,
blocks: 96,
atimeMs: 1651996271195.6572,
mtimeMs: 1651718270707.592,
ctimeMs: 1651718270707.592,
birthtimeMs: 1651995922591.119,
atime: 2022-05-08T07:51:11.196Z,
mtime: 2022-05-05T02:37:50.708Z,
ctime: 2022-05-05T02:37:50.708Z,
birthtime: 2022-05-08T07:45:22.591Z
}
fs.readdir()获取文件子目录
获取文件中的子目录
async function test() {
const dirname = path.resolve(__dirname, "./readme");
const paths = await fs.promises.readdir(dirname);
console.log(paths);
}
test();
//输出内容
[ '1.text', 'G.jpg', 'Gf.jpg' ]
fs.mkdir()创建一个目录
可以使用fs.writeFile()创建一个文件
创建一个目录
async function test() {
for (let i = 0; i < 5; i++) {
const dirname = path.resolve(__dirname, `./readme/${i}`);
await fs.promises.mkdir(dirname);
}
}
test();
判断一个一个目录是否存在
async function exits(filename) {
try {
await fs.promises.stat(filename);
return true;
} catch (error) {
if (error.code === "ENOENT") {
return false;
}
throw error;
}
}
async function test() {
const dirname = path.resolve(__dirname, "./readme/7");
const result = await exits(dirname);
if (result) {
console.log("目录已存在");
} else {
console.log("目录不存在,已经帮你创建");
fs.promises.mkdir(dirname);//c
}
}
test();
fs.unlink()删除一个文件
删除一个文件
fs.unlink(filename)