[关闭]
@Wangww0925 2019-01-24T07:53:34.000000Z 字数 4900 阅读 244

fs 文件模块

NodeJs


引入fs文件模块: var fs = require("fs");

fs 参数

  1. mkdirSync() - 创建目录 (文件夹)
  2. mkdir(file, callback) - 创建目录 (文件夹)
  3. rmdirSync() - 删除目录 (文件夹)【文件夹一定要为空】
  4. rmdir(file, callback) - 删除目录 (文件夹)【文件夹一定要为空】
  5. readdirSync() - 读取目录 (文件夹)
  6. readdir(file, callback) - 读取目录 (文件夹)
  7. writeFileSync() - 写入文件
  8. writeFile(file, data, options, callback) - 写入文件
  9. appendFileSync() - 追加文件内容
  10. appendFile(file, data, options, callback) - 追加文件内容
  11. readFileSync() - 读取文件 【返回一个buffer类数组对象】
  12. readFile(file, options, callback) - 读取文件
  13. unlinkSync() - 删除文件
  14. unlink(file, callback) - 删除文件
  15. watchFile(file, callback) - 监听文件发生改变
  16. renameSync() - 修改文件或者文件夹名称,改动文件的路径位置、文件名等
  17. rename(file, newName, callback) - 修改文件或者文件夹名称,改动文件的路径位置、文件名等
  18. statSync() - 查看文件或者文件夹的状态
  19. stat(file, callback) - 查看文件或者文件夹的状态
  20. accessSync() -
  21. access() -
  22. chownSync() -
  23. chown() -
  24. chmodSync() -
  25. chmod() -
  26. closeSync() -
  27. close() -
  28. copyFileSync() -
  29. copyFile() -
  30. createReadStream() -
  31. createWriteStream() -
  32. existsSync() -
  33. exists() -
  34. fchownSync() -
  35. fchown() -
  36. fchmodSync() -
  37. fchmod() -
  38. fdatasync() -
  39. fdatasyncSync() -
  40. fstatSync() -
  41. fstat() -
  42. fsync() -
  43. fsyncSync() -
  44. ftruncateSync() -
  45. ftruncate() -
  46. futimesSync() -
  47. futimes() -
  48. lchownSync() -
  49. lchown() -
  50. lchmod undefined
  51. lchmodSync undefined
  52. linkSync() -
  53. link() -
  54. lstatSync() -
  55. lstat() -
  56. mkdtempSync() -
  57. mkdtemp() -
  58. openSync() -
  59. open() -
  60. readSync() -
  61. read() -
  62. readlinkSync() -
  63. readlink() -
  64. realpathSync() -
  65. realpath() -
  66. symlinkSync() -
  67. symlink() -
  68. truncateSync() -
  69. truncate() -
  70. unwatchFile() -
  71. utimesSync() -
  72. utimes() -
  73. watch() -
  74. writeSync() -
  75. write() -
  76. Stats() -
  77. ReadStream
  78. WriteStream
  79. FileReadStream
  80. FileWriteStream
  81. _toUnixTimestamp() -
  82. constants - object

注意

异步操作是非常难以控制的,可以采用promise对象进行解决


目录(文件夹)操作


fs.mkdir(file, mode, callback) 创建目录(文件夹)

参数

  1. file - 文件
  2. mode - 一般省略
  3. callback - 回调
  4. err - error

例子

  1. const fs = require("fs");
  2. fs.mkdir("./test",function(err){
  3. if(!err){
  4. console.log("文件创建成功");
  5. }
  6. })

效果图:

image_1d1nt32f51151vjq7qnp1d1a32m.png-112.3kB


fs.rmdir(file, callback) 删除目录(文件夹) 【文件夹一定要为空,否则删除失败】

参数

  1. file - 文件
  2. callback - 回调
  3. err - error

例子

  1. const fs = require("fs");
  2. fs.rmdir("./test",function (err){
  3. if(err){
  4. console.log("删除失败");
  5. }else{
  6. console.log("文件删除成功");
  7. }
  8. })

效果图:

image_1d1ntb07n1rrhbv913ft112hric13.png-163.6kB


fs.readdir() 读取目录(文件夹)

参数

  1. file - 文件
  2. callback - 回调
  3. err - error
  4. files - files是一个数组,内容为文件或者文件夹

PS: files是一个数组,内容为文件或者文件夹

例子

  1. const fs = require("fs");
  2. fs.readdir("./src",function (err,files){
  3. console.log(files);
  4. })

效果图:

image_1d1nthpej19q6v5d3irbr7131l1g.png-134.3kB



文件操作


fs.writeFile(file, data, options, callback) 写入文件

参数

  1. file - 文件
  2. data - 写入数据
  3. options - 一般省略
  4. encoding 默认为空,一般设置为utf8
  5. flag 标识符 默认为r r代表以读取模式打开文件
  6. callback - 回调
  7. err - error

PS:文件不存在自动创建;默认采用utf-8 编码

例子

  1. const fs = require("fs");
  2. fs.writeFile("./text.txt","我是测试文件",function (err){
  3. if(err){
  4. console.log("写入失败");
  5. }else{
  6. console.log("写入成功");
  7. }
  8. })

效果图:

image_1d1ntp3k01t44qp71u0716jr13c31t.png-182.9kB


fs.appendFile(file, data, options, callback) 追加文件内容

参数

  1. file - 文件
  2. data - 追加的内容
  3. options - 一般省略
  4. encoding 默认为空,一般设置为utf8
  5. flag 标识符 默认为r r代表以读取模式打开文件
  6. callback - 回调
  7. err - error

PS:文件不存在自动创建

例子

  1. const fs = require("fs");
  2. fs.appendFile("./test.txt","\n添加新的内容1111",function (err){
  3. if(err){
  4. console.log("添加失败");
  5. }else{
  6. console.log("添加成功");
  7. }
  8. })

效果图:

image_1d1nu935uora1hkk1pngm1f1vdq2a.png-205.2kB


fs.readFile(file, options,callback) 读取文件

参数

  1. file - 文件
  2. options - 一般省略
  3. encoding 默认为空,一般设置为utf8
  4. flag 标识符 默认为r r代表以读取模式打开文件
  5. callback - 回调
  6. err - error
  7. file - buffer类数组对象

例子

创建一个文件 test.txt ,内容如下:

  1. 我是测试文件
  2. 添加新的内容1111

创建 main.js 文件, 代码如下:

  1. const fs = require("fs");
  2. fs.readFile("./test.txt", function (err, file){
  3. if(err){
  4. console.log(err)
  5. }else{
  6. console.log(file.toString())
  7. }
  8. })
  9. console.log("程序执行结束")

效果图:

image_1d1nuksbh11am1js91hsbfpv1p353u.png-210.1kB


fs.readFileSync() 读取文件,返回一个buffer类数组对象

例子

创建一个文件 test.txt ,内容如下:

  1. 我是测试文件
  2. 添加新的内容1111

创建 main.js 文件, 代码如下:

  1. const fs = require("fs");
  2. var file = fs.readFileSync("./test.txt")
  3. console.log(file.toString())
  4. console.log("程序执行结束")

效果图:

image_1d1nue50h1r3urrpf8eblf1uft2n.png-192.4kB


fs.unlink(file,callback) 删除文件

参数

  1. file - 文件
  2. callback - 回调
  3. err - error

例子

  1. const fs = require("fs");
  2. fs.unlink("./04.txt",function(err){
  3. if(!err){
  4. console.log("删除成功");
  5. }
  6. })

效果图:

image_1d1nuon5gqjo1l4q1mf3cjl1q1n4b.png-152.2kB


fs.watchFile(file,callback) 监听文件发生改变

参数

  1. file - 文件
  2. callback - 回调
  3. newStatus - 旧的数据
  4. oldStatus - 新的数据

注意

一旦文件发生变动就会自动触发回调函数
可以采用这个监听文件的原理来完成自动重新运行服务器
安装插件supervisor 原理就是监听文件发生了变化,一旦文件发生了变化就会重新启动node程序

例子

  1. const fs = require("fs");
  2. fs.watchFile("./text.txt", function (newStatus,oldStatus){
  3. console.log("newStatus",newStatus);
  4. console.log("oldStatus",oldStatus);
  5. })


文件 & 文件夹 操作


fs.rename(file, newName, callback) 修改文件或者文件夹名称

参数

  1. file - 文件
  2. newName - 新的名称
  3. callback - 回调
  4. err - error

例子

  1. const fs = require("fs");
  2. fs.rename("./text.txt","./demo.txt", function (err){
  3. if(err){
  4. console.log("修改失败")
  5. }else{
  6. console.log("修改成功")
  7. }
  8. })

效果图:

image_1d1nv9t7j12oidpalif1fou1c8f4o.png-196.3kB


fs.stat(file, callback) 查看文件或者文件夹的状态

参数

  1. file - 文件
  2. callback - 回调
  3. err - error
  4. stats - object ,可以获取文件大小,创建时间等信息
  5. isDirectory() - 判断是否为文件夹,true是,false不是
  6. isFile() - 判断是否为文件,true是,false不是

PS: 可以获取文件大小,创建时间等信息

stats.isDirectory() 判断是否为文件夹

stats.isFile() 判断是否为文件

例子

  1. /*
  2. * 判断是否为文件夹 .isDirectory()
  3. * 判断是否为文件 .isFile()
  4. */
  5. const fs = require("fs");
  6. fs.stat("./demo.txt",function (err,stats){
  7. console.log(stats);
  8. console.log(stats.isDirectory()); // 返回true
  9. console.log(stats.isFile()); // 返回false
  10. })

作者 wendy
2019 年 1月 21日

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注