收藏node

Express框架:fs操作目录与文件的一些方法

2022-03-03  本文已影响0人  听书先生
1.1、读取文件/文件夹的信息

fs.stat('文件名称', function(error, stats) {})
stats是文件的信息对象,包含了常用个文件信息

const stat = fs.statSync('文件名称')

fs.stat('./new-data.txt', (error, stats) => {
    if(error) {
        throw error;
    } else {
        console.log(stats);
    }
})
Stats {
  dev: 3963079969,
  mode: 33206,
  nlink: 1,
  uid: 0,
  gid: 0,
  rdev: 0,
  blksize: 4096,
  ino: 33495522228571390,
  size: 17,  // 文件大小,字节数
  blocks: 8,
  atimeMs: 1646312863637.542,
  mtimeMs: 1646145335936.3354,
  ctimeMs: 1646317420347.023,
  birthtimeMs: 1646142742490.054,
  atime: 2022-03-03T13:07:43.638Z,    // 上一次文件访问时间
  mtime: 2022-03-01T14:35:35.936Z,   // 文件内容修改时间
  ctime: 2022-03-03T14:23:40.347Z,    // 文件状态改变时间 
  birthtime: 2022-03-01T13:52:22.490Z   // 第一次创建时间
}
图1.png
1.2、获取文件信息对象类型的方法

语法格式:

isFile() 是否是文件,返回布尔值
isDirectory() 是否是文件夹,返回布尔值

fs.stat('./data.txt', function(error, stats) {
    if(error) {
        new Error(error); 
        return;
    }
    console.log(stats.isFile()); //判断 ./data.txt是否是文件
    console.log(stats.isDirectory()); //判断 ./data.txt是否是文件夹
})
1.3、修改文件名称

语法格式:

fs.rename("文件路径", '新的文件名称', error => {})

fs.rename("./data.txt", 'new-data.txt', error => {
    if(error) {
        new Error(error);
        return;
    }
    console.log('文件名称已修改...')
})
1.4、删除某个文件

语法格式:

fs.unlink('文件路径', 回调函数)

fs.unlink('./test.txt', (error) => {
    if(error) {
        throw error;
    } else {
        console.log('文件删除成功...');
    }
})
1.5、新增目录结构

语法格式:

fs.mkdir('文件路径', 回调函数)

fs.mkdir('../images', error => {
    if(error) {
        throw error;
    } else {
        console.log('文件目录创建成功...')
    }
})
1.6、读取目录中的文件列表

语法结构:

fs.readdir('文件路径', 回调函数)

fs.readdir('./public', (error, list) => { 
    if(error) {
        throw error;
    } else {
        console.log(list);
    }
})
i图2.png

打印到的是一个文件目录下的文件列表,以数组的方式呈现。

1.7、删除空文件夹

语法结构:

fs.rmdir('文件夹路径', (error) => {})

fs.rmdir('../images', (error) => {
    if(error) {
        throw error;
    } else {
        console.log('删除成功...')
    }
})

需要注意的是:只能删除空的文件夹

1.8、监听文件是否改变

watch:监听,文件夹内所有文件的变化
watchFile:是监听一个文件的变化

fs.writeFile('./test.txt', '12345', (error) => {
    if(error) {
        throw error;
    } else {
        console.log('新增成功...')
    }
})

fs.watch('./', {
    recursive: false, // 默认为false 是否递归
}, (changeType, fileName) => {
    console.log(changeType); // 监听文件目录下文件变化,是新增还是删除
    console.log(fileName);  // 修改的文件名字
})

fs.watchFile('./new-data.txt', (c, p) => {
    console.log(c); // 监听文件改变之前的stats
    console.log(p);  // 监听文件改变之后(即当前文件)的stats
})
图3.png
上一篇下一篇

猜你喜欢

热点阅读