美文网首页收藏node
Express框架:fs操作目录与文件的一些方法

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

作者: 听书先生 | 来源:发表于2022-03-03 23:14 被阅读0次
    1.1、读取文件/文件夹的信息
    • 1.1.1、异步读取
      语法结构

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

    • 1.1.2、同步读取
      语法结构

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

    fs.stat('./new-data.txt', (error, stats) => {
        if(error) {
            throw error;
        } else {
            console.log(stats);
        }
    })
    
    • 1.1.3Stats对象信息:
    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

    相关文章

      网友评论

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

        本文链接:https://www.haomeiwen.com/subject/xmiurrtx.html