From 0649ec4e67aaa4473038b7652c75c1991f35e171 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=84=E5=A4=A9=E4=BC=9F?= <1571831274@qq.com> Date: Sun, 3 Mar 2024 20:26:48 +0800 Subject: [PATCH 1/2] =?UTF-8?q?20240303=5F=5F=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...73\347\273\237\346\250\241\345\235\227.md" | 2 +- ...41\345\235\227\350\241\245\345\205\205.md" | 46 ++++++++++++ .../node_demo/node_demo/app.js" | 70 +++++++++++++++++++ .../node_demo/node_demo/kk/33.txt" | 0 .../node_demo/node_demo/kk/pp/66.txt" | 0 .../node_demo/node_demo/package.json" | 13 ++++ .../node_demo/node_demo/uu.txt" | 1 + .../node_demo/node_demo/yy.txt" | 1 + 8 files changed, 132 insertions(+), 1 deletion(-) create mode 100644 "7\347\217\255\351\273\204\345\244\251\344\274\237/20240303-\344\275\234\344\270\232&\347\254\224\350\256\260/20230303-\346\226\207\344\273\266\347\263\273\347\273\237\346\250\241\345\235\227\350\241\245\345\205\205.md" create mode 100644 "7\347\217\255\351\273\204\345\244\251\344\274\237/20240303-\344\275\234\344\270\232&\347\254\224\350\256\260/node_demo/node_demo/app.js" create mode 100644 "7\347\217\255\351\273\204\345\244\251\344\274\237/20240303-\344\275\234\344\270\232&\347\254\224\350\256\260/node_demo/node_demo/kk/33.txt" create mode 100644 "7\347\217\255\351\273\204\345\244\251\344\274\237/20240303-\344\275\234\344\270\232&\347\254\224\350\256\260/node_demo/node_demo/kk/pp/66.txt" create mode 100644 "7\347\217\255\351\273\204\345\244\251\344\274\237/20240303-\344\275\234\344\270\232&\347\254\224\350\256\260/node_demo/node_demo/package.json" create mode 100644 "7\347\217\255\351\273\204\345\244\251\344\274\237/20240303-\344\275\234\344\270\232&\347\254\224\350\256\260/node_demo/node_demo/uu.txt" create mode 100644 "7\347\217\255\351\273\204\345\244\251\344\274\237/20240303-\344\275\234\344\270\232&\347\254\224\350\256\260/node_demo/node_demo/yy.txt" diff --git "a/7\347\217\255\351\273\204\345\244\251\344\274\237/20240302-\346\250\241\345\235\227&\346\226\207\344\273\266\347\263\273\347\273\237\346\250\241\345\235\227.md" "b/7\347\217\255\351\273\204\345\244\251\344\274\237/20240302-\346\250\241\345\235\227&\346\226\207\344\273\266\347\263\273\347\273\237\346\250\241\345\235\227.md" index a277e5b..f250ec6 100644 --- "a/7\347\217\255\351\273\204\345\244\251\344\274\237/20240302-\346\250\241\345\235\227&\346\226\207\344\273\266\347\263\273\347\273\237\346\250\241\345\235\227.md" +++ "b/7\347\217\255\351\273\204\345\244\251\344\274\237/20240302-\346\250\241\345\235\227&\346\226\207\344\273\266\347\263\273\347\273\237\346\250\241\345\235\227.md" @@ -22,7 +22,7 @@ import { var1, func } from './myModule'; import * as myModule from './myModule'; ``` -### 文件系统操作模块fs +### 文件系统模块fs fs 是 Node.js 中的核心模块之一,用于处理文件系统操作。fs 模块提供了一组丰富的 API,可以让你在 Node.js 环境下对文件进行读取、写入、修改、删除等操作 #### 操作方法 ```js diff --git "a/7\347\217\255\351\273\204\345\244\251\344\274\237/20240303-\344\275\234\344\270\232&\347\254\224\350\256\260/20230303-\346\226\207\344\273\266\347\263\273\347\273\237\346\250\241\345\235\227\350\241\245\345\205\205.md" "b/7\347\217\255\351\273\204\345\244\251\344\274\237/20240303-\344\275\234\344\270\232&\347\254\224\350\256\260/20230303-\346\226\207\344\273\266\347\263\273\347\273\237\346\250\241\345\235\227\350\241\245\345\205\205.md" new file mode 100644 index 0000000..a5e2ab2 --- /dev/null +++ "b/7\347\217\255\351\273\204\345\244\251\344\274\237/20240303-\344\275\234\344\270\232&\347\254\224\350\256\260/20230303-\346\226\207\344\273\266\347\263\273\347\273\237\346\250\241\345\235\227\350\241\245\345\205\205.md" @@ -0,0 +1,46 @@ +### fs.readdir() + +readdir函数用于读取一个目录,并返回一个包含目录中所有文件和子目录名称的数组。 + + +```js +const fs = require('fs'); + +// 读取当前目录下的文件和子目录 +fs.readdir('./', (err, files) => { + if (err) { + console.error(err); + return; + } + + // 打印文件和子目录的名称 + files.forEach((file) => { + console.log(file); + }); +}); +``` + +### fs.stat() + +用于获取文件或目录的详细信息,比如文件大小、创建时间、修改时间等。 + +```js +const fs = require('fs'); + +// 获取文件信息 +fs.stat('example.txt', (err, stats) => { + if (err) { + console.error(err); + return; + } + + // 打印文件的大小和最后修改时间 + console.log(`File size: ${stats.size} bytes`); + console.log(`Last modified: ${stats.mtime}`); +}); +``` + +### xxx()和xxxsync()的区别 +- 后面带有sync的均为同步操作,反之为异步操作 +- 当代码执行到异步的代码时,不会停下来等待执行完毕再往下执行,而是接着往下执行,同步则会停下来等 +- 同步的函数通常不需要回调函数 \ No newline at end of file diff --git "a/7\347\217\255\351\273\204\345\244\251\344\274\237/20240303-\344\275\234\344\270\232&\347\254\224\350\256\260/node_demo/node_demo/app.js" "b/7\347\217\255\351\273\204\345\244\251\344\274\237/20240303-\344\275\234\344\270\232&\347\254\224\350\256\260/node_demo/node_demo/app.js" new file mode 100644 index 0000000..19d0cdd --- /dev/null +++ "b/7\347\217\255\351\273\204\345\244\251\344\274\237/20240303-\344\275\234\344\270\232&\347\254\224\350\256\260/node_demo/node_demo/app.js" @@ -0,0 +1,70 @@ +import fs from 'fs'; + +// fs.readdir('./', (err, data) => { +// if (err) { +// console.log(err); +// } else { +// console.log(data); +// } +// }) + +/* +一、读取指定文件夹,列出所有的文件或者文件夹 +二、遍历这些文件或者文件夹,判断是否文件夹,是,则继续调用读取文件夹的方法 +三、一直重复第二步,直到将所有的内容都列出 + +*/ + + +function listAllFile(filePath) { + let resArr = []; + /* + 1.判断是否为文件夹,如果不是,则直接返回文件名称 + 2.如果是文件夹,则列出其下所有的内容(文件、文件夹) + 3.如果列出的内容中某个项目是文件夹,则继续深入列出其下所有的内容 + */ + + // 使用同步方法,获得指定路径的状态 + let fileStat = fs.statSync(filePath); + // 利用状态,判断是否为文件 + let isPathFile = fileStat.isFile(); + + // 如果是文件,则直接放入结果数组 + if (isPathFile) { + //调用数组的push方法,将一个对象插入到数组的尾部 + resArr.push(filePath); + + + + + } else { + // 如果是文件夹,则利用readdirSync方法,读取目录中的所有的内容(包含文件和文件夹) + let arr = fs.readdirSync(filePath); + + + // 解决pp下空文件夹ii没被记录 + if(!arr.length){ + resArr=resArr.concat(filePath); + } + + + // 遍历目录下的所有内容项目,再利用当前方法listAllFile来处理对应路径的信息(重点理解) + arr.forEach(item => { + // 判断filePath最后一个字符是否为/ + let lastStrIs = filePath.lastIndexOf('/') === filePath.length - 1; + // filePath如果最后一个是/,那么就和item直接拼接就可以,否则需要再加一个/ + let tmpPath = lastStrIs ? filePath + item : `${filePath}/${item}`; + // 拿到处理好的路径以后,直接调用listAllfile函数继续处理,拿到的结果tmpArr和原结果resArr合并, + // 再重新赋值给原结果resArr + let tmpArr = listAllFile(tmpPath); + resArr=resArr.concat(tmpArr); + }) + } + // 返回最终结果 + return resArr; + +} + + +let arr=listAllFile('./'); +console.log(arr); \ No newline at end of file diff --git "a/7\347\217\255\351\273\204\345\244\251\344\274\237/20240303-\344\275\234\344\270\232&\347\254\224\350\256\260/node_demo/node_demo/kk/33.txt" "b/7\347\217\255\351\273\204\345\244\251\344\274\237/20240303-\344\275\234\344\270\232&\347\254\224\350\256\260/node_demo/node_demo/kk/33.txt" new file mode 100644 index 0000000..e69de29 diff --git "a/7\347\217\255\351\273\204\345\244\251\344\274\237/20240303-\344\275\234\344\270\232&\347\254\224\350\256\260/node_demo/node_demo/kk/pp/66.txt" "b/7\347\217\255\351\273\204\345\244\251\344\274\237/20240303-\344\275\234\344\270\232&\347\254\224\350\256\260/node_demo/node_demo/kk/pp/66.txt" new file mode 100644 index 0000000..e69de29 diff --git "a/7\347\217\255\351\273\204\345\244\251\344\274\237/20240303-\344\275\234\344\270\232&\347\254\224\350\256\260/node_demo/node_demo/package.json" "b/7\347\217\255\351\273\204\345\244\251\344\274\237/20240303-\344\275\234\344\270\232&\347\254\224\350\256\260/node_demo/node_demo/package.json" new file mode 100644 index 0000000..2bfb583 --- /dev/null +++ "b/7\347\217\255\351\273\204\345\244\251\344\274\237/20240303-\344\275\234\344\270\232&\347\254\224\350\256\260/node_demo/node_demo/package.json" @@ -0,0 +1,13 @@ +{ + "name": "node_demo", + "version": "5.3.0", + "description": "", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "keywords": [], + "author": "", + "license": "ISC", + "type": "module" +} diff --git "a/7\347\217\255\351\273\204\345\244\251\344\274\237/20240303-\344\275\234\344\270\232&\347\254\224\350\256\260/node_demo/node_demo/uu.txt" "b/7\347\217\255\351\273\204\345\244\251\344\274\237/20240303-\344\275\234\344\270\232&\347\254\224\350\256\260/node_demo/node_demo/uu.txt" new file mode 100644 index 0000000..176a7ed --- /dev/null +++ "b/7\347\217\255\351\273\204\345\244\251\344\274\237/20240303-\344\275\234\344\270\232&\347\254\224\350\256\260/node_demo/node_demo/uu.txt" @@ -0,0 +1 @@ + 长城长 \ No newline at end of file diff --git "a/7\347\217\255\351\273\204\345\244\251\344\274\237/20240303-\344\275\234\344\270\232&\347\254\224\350\256\260/node_demo/node_demo/yy.txt" "b/7\347\217\255\351\273\204\345\244\251\344\274\237/20240303-\344\275\234\344\270\232&\347\254\224\350\256\260/node_demo/node_demo/yy.txt" new file mode 100644 index 0000000..6804950 --- /dev/null +++ "b/7\347\217\255\351\273\204\345\244\251\344\274\237/20240303-\344\275\234\344\270\232&\347\254\224\350\256\260/node_demo/node_demo/yy.txt" @@ -0,0 +1 @@ +明天会更好 \ No newline at end of file -- Gitee From 9d79bc1eac65f92c91b65c01bff06432ad93e98d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=84=E5=A4=A9=E4=BC=9F?= <1571831274@qq.com> Date: Sun, 3 Mar 2024 20:28:39 +0800 Subject: [PATCH 2/2] =?UTF-8?q?20240303=5F=5F=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...5\256\211\350\243\205&\345\210\235\345\247\213\345\214\226.md" | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename "7\347\217\255\351\273\204\345\244\251\344\274\237/20240229.md" => "7\347\217\255\351\273\204\345\244\251\344\274\237/20240229-nodejs\345\256\211\350\243\205&\345\210\235\345\247\213\345\214\226.md" (100%) diff --git "a/7\347\217\255\351\273\204\345\244\251\344\274\237/20240229.md" "b/7\347\217\255\351\273\204\345\244\251\344\274\237/20240229-nodejs\345\256\211\350\243\205&\345\210\235\345\247\213\345\214\226.md" similarity index 100% rename from "7\347\217\255\351\273\204\345\244\251\344\274\237/20240229.md" rename to "7\347\217\255\351\273\204\345\244\251\344\274\237/20240229-nodejs\345\256\211\350\243\205&\345\210\235\345\247\213\345\214\226.md" -- Gitee