<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                >[success] # 讀取文件目錄和文件 1. 可以**讀取指定目錄下的子目錄或者文件** | 方法名 | 描述 | | --- | --- | | `fs.readdir(path[, options], callback)` | 異步讀取目錄中的文件和子目錄 | | `fs.readdirSync(path[, options])` | 同步讀取目錄中的文件和子目錄名稱 | | `fs.promises.readdir(path[, options])` | 返回一個Promise對象,異步讀取目錄中的文件和子目錄名稱 | >[danger] ### fs.readdir(path[, options], callback) 1. `fs.readdir(path[, options], callback)`是Node.js中用于讀取目錄中的所有文件和子目錄的異步方法。該方法接受三個參數: * `path`:要讀取的目錄的路徑。 * `options`:可選參數,用于指定讀取目錄時的選項,如`encoding`、`withFileTypes`等。 * `callback`:回調函數,當目錄讀取完成時調用。 回調函數有兩個參數: * `err`:如果發生錯誤,則為錯誤對象;否則為`null`。 * `files`:一個包含目錄中所有文件和子目錄的名稱的數組。 2. `withFileTypes`是`fs.readdir()`方法的一個可選參數,它指定返回的文件名數組中是否包含文件的類型信息。 當`withFileTypes`設置為`true`時,返回的數組中將包含一個`fs.Dirent`對象數組,該對象包含文件名、文件類型以及其他文件信息。`fs.Dirent`對象有兩個屬性:`name`和`isDirectory()`。`name`屬性是文件或目錄的名稱,`isDirectory()`方法返回一個布爾值,表示該文件是否是一個目錄。 當`withFileTypes`設置為`false`或未指定時,返回的數組中只包含文件名字符串數組。 >[danger] ##### 案例 ~~~ const fs = require('fs') // 讀取文件目錄 a/b/c fs.readdir('a', (err, files) => { if (err) { console.log(err) } else { console.log(files) // [ 'b' ] } }) // 讀取文件目錄 a/b/c fs.readdir('a', { withFileTypes: true }, (err, files) => { if (err) { console.log(err) } else { console.log(files) // [ Dirent { name: 'b', [Symbol(type)]: 2 } ] } }) ~~~ >[danger] ### fs.readdirSync(path[, options]) `fs.readdirSync(path[, options])`是Node.js中用于同步讀取目錄中的所有文件和子目錄的方法。 >[danger] ##### api 1. 參數: * `path`:要讀取的目錄的路徑。 * `options`:可選參數,用于指定讀取目錄時的選項,如`encoding`、`withFileTypes`等。 2. `withFileTypes`是`fs.readdir()`方法的一個可選參數,它指定返回的文件名數組中是否包含文件的類型信息。 當`withFileTypes`設置為`true`時,返回的數組中將包含一個`fs.Dirent`對象數組,該對象包含文件名、文件類型以及其他文件信息。`fs.Dirent`對象有兩個屬性:`name`和`isDirectory()`。`name`屬性是文件或目錄的名稱,`isDirectory()`方法返回一個布爾值,表示該文件是否是一個目錄。 當`withFileTypes`設置為`false`或未指定時,返回的數組中只包含文件名字符串數組。 >[danger] ##### 案例 ~~~ // 讀取文件目錄 a/b/c const ls = fs.readdirSync('a') console.log(ls) // [ 'b' ] // 讀取文件目錄 a/b/c const ls = fs.readdirSync('a', { withFileTypes: true }) console.log(ls) // [ Dirent { name: 'b', [Symbol(type)]: 2 } ] ~~~ >[danger] ### fs.promises.readdir(path[, options]) 1. `fs.promises.readdir(path[, options])`是Node.js中用于異步讀取目錄中的所有文件和子目錄的Promise方法。 >[danger] ##### api * `path`:要讀取的目錄的路徑。 * `options`:可選參數,用于指定讀取目錄時的選項,如`encoding`、`withFileTypes`等。 2. `withFileTypes`是`fs.readdir()`方法的一個可選參數,它指定返回的文件名數組中是否包含文件的類型信息。 當`withFileTypes`設置為`true`時,返回的數組中將包含一個`fs.Dirent`對象數組,該對象包含文件名、文件類型以及其他文件信息。`fs.Dirent`對象有兩個屬性:`name`和`isDirectory()`。`name`屬性是文件或目錄的名稱,`isDirectory()`方法返回一個布爾值,表示該文件是否是一個目錄。 當`withFileTypes`設置為`false`或未指定時,返回的數組中只包含文件名字符串數組。 >[danger] ##### 案例 ~~~ const { readdir } = require('fs/promises') readdir('./a', { withFileTypes: true }).then(console.log) // [ Dirent { name: 'b', [Symbol(type)]: 2 } ] ~~~ >[info] ## 遞歸讀取當前文件下的所有結構目錄 1. 在上面的代碼中,我們將`const result = { dir: [], files: [] }`作為`readDirRecursive()`函數的默認參數,并在函數內部將目錄和文件分別添加到`result.dir`和`result.files`屬性中。我們使用遞歸方式調用`readDirRecursive()`函數,以便將子目錄中的文件和目錄也添加到`result`對象中。 ~~~ const fs = require('fs') const path = require('path') // 遞歸讀取文件夾和文件 function readDirRecursive(dir, result = { dir: [], files: [] }) { try { const files = fs.readdirSync(dir, { withFileTypes: true }) files.forEach((file) => { if (file.isDirectory()) { const subDir = path.join(dir, file.name) result.dir.push(subDir) readDirRecursive(subDir, result) } else { const filePath = path.join(dir, file.name) result.files.push(filePath) } }) } catch (err) { console.error(`Failed to read directory ${dir}: ${err.message}`) } return result } const result = readDirRecursive('a') console.log(result) ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看