Node学习二:fs 文件系统

常用方法

  • fs.access(): 检查文件是否存在,以及 Node.js 是否有权限访问。
  • fs.appendFile(): 追加数据到文件。如果文件不存在,则创建文件。
  • fs.chmod(): 更改文件(通过传入的文件名指定)的权限。相关方法:fs.lchmod()fs.fchmod()
  • fs.chown(): 更改文件(通过传入的文件名指定)的所有者和群组。相关方法:fs.fchown()fs.lchown()
  • fs.close(): 关闭文件描述符。
  • fs.copyFile(): 拷贝文件。
  • fs.createReadStream(): 创建可读的文件流。
  • fs.createWriteStream(): 创建可写的文件流。
  • fs.mkdir(): 新建文件夹。
  • fs.mkdtemp(): 创建临时目录。
  • fs.rm(): 删除文件,也可删除目录。
  • fs.rmdir(): 删除文件夹。
  • fs.rename(): 重命名/移动 文件或文件夹。
  • fs.open(): 设置文件模式。
  • fs.readdir(): 读取目录的内容。
  • fs.readFile(): 读取文件的内容。相关方法:fs.read()。
  • fs.readlink(): 读取符号链接的值。
  • fs.realpath(): 将相对的文件路径指针(…)解析为完整的路径。
  • fs.stat(): 返回文件(通过传入的文件名指定)的状态,可用来判断文件是否存在。相关方法:fs.fstat()fs.lstat()
  • fs.symlink(): 新建文件的符号链接。
  • fs.truncate(): 将传递的文件名标识的文件截断为指定的长度。相关方法:fs.ftruncate()
  • fs.link(): 新建指向文件的硬链接。
  • fs.unlink(): 删除文件或符号链接。
  • fs.unwatchFile(): 停止监视文件上的更改。
  • fs.utimes(): 更改文件(通过传入的文件名指定)的时间戳。相关方法:fs.futimes()
  • fs.watchFile(): 开始监视文件上的更改。相关方法:fs.watch()。
  • fs.writeFile(): 将数据写入文件。相关方法:fs.write()。

使用例子

判断文件/目录是否存在

使用 fs.access

// 判断文件/目录 是否存在
fs.access('./data', fs.constants.F_OK, err => {
    
    
    console.log(`${
      
      err ? '不存在' : '存在'}`);
})

// 判断文件是否可读 
fs.access(file, constants.R_OK, (err) => {
    
    
  console.log(`${
      
      file} ${
      
      err ? '不可读' : '可读'}`);
});

// 判断文件是否可写
fs.access(file, constants.W_OK, (err) => {
    
    
    console.log(`${
      
      file} ${
      
      err ? '不可写' : '可写'}`);
});

使用 fs.stat()

fs.stat('./data', (err, stats) => {
    
    
    if (err) console.log('文件/目录不存在')
    // 不存在时,stats 为 undefined
    console.log('stats:', stats)
})

创建目录

创建一级文件夹,多层级会报错

fs.mkdir('./data', err => {
    
    
   if (err) throw err
})

创建多层级目录

fs.mkdir('./data/test/test', {
    
     recursive: true }, err => {
    
    
   if (err) throw err
})

删除目录

删除指定文件夹,且该文件夹下必须为空

fs.rmdir('./data', err => {
    
    
    if (err) throw err
})

删除目录,包括该目录下的所有文件夹与文件

fs.rmdir('./data/test', {
    
     recursive: true },  err => {
    
    
    if (err) throw err
})

同上一样的效果

fs.rm('./data/test', {
    
     recursive: true }, err => {
    
    
    if (err) throw err
})

删除文件

使用 fs.unlink

fs.unlink('./data/test.txt', err => {
    
    
    if (err) throw err
})

使用 fs.rm

fs.rm('./data/test.txt', err => {
    
    
    if (err) throw err
})

猜你喜欢

转载自blog.csdn.net/Kevin_xq/article/details/129697468