>[success] # 創建目錄 api
| API | 描述 |
| --- | --- |
| `fs.mkdir(path[, options], callback)` | 創建一個指定的目錄。如果目錄已經存在,則會報錯。可以通過 options 參數來指定目錄的權限,默認值為 0o777。callback 回調函數會在目錄創建完成后調用。 |
| `fs.mkdirSync(path[, options])` | 同步地創建一個指定的目錄。如果目錄已經存在,則會報錯。可以通過 options 參數來指定目錄的權限,默認值為 0o777。 |
>[danger] ### `fs.mkdir(path[, options], callback)`
1. `fs.mkdir(path[, options], callback)`是 Node.js 中用于創建目錄的 API 之一。它接受三個參數:
* `path`:要創建的目錄的路徑,可以是絕對路徑或相對路徑。
* `options`:可選參數,用于指定目錄的權限,默認值為 0o777。該參數是一個對象,可以包含以下屬性:
* `recursive`:一個布爾值,指定是否遞歸地創建目錄及其父級目錄。默認值為`false`。如果設置為`true`,則會在創建目錄時自動創建缺失的父級目錄。
* `mode`:一個整數,指定目錄的權限。默認值為 0o777。
* `callback`:一個回調函數,用于在目錄創建完成后執行。回調函數接受一個參數,即可能產生的錯誤對象。如果目錄創建成功,則錯誤對象為`null`。
2. **如果目錄已經存在,或者沒有足夠的權限來創建目錄,`fs.mkdir`方法將會返回一個錯誤對象,可以在回調函數中捕獲并進行處理**
3. `recursive: true` **方法來遞歸地創建目錄**。
| 參數 | 類型 | 描述 |
| --- | --- | --- |
| `path` | string | 要創建的目錄的路徑,可以是絕對路徑或相對路徑。 |
| `options` | object | 可選參數,用于指定目錄的權限和遞歸創建。包含以下屬性: |
| | `mode` | 一個整數,指定目錄的權限。默認值為 0o777。 |
| | `recursive` | 一個布爾值,指定是否遞歸地創建目錄及其父級目錄。默認值為`false`。 |
| `callback` | function | 一個回調函數,用于在目錄創建完成后執行。回調函數接受一個參數,即可能產生的錯誤對象 |
>[danger] ##### 案例
~~~
const fs = require('fs')
// 創建文件目錄
fs.mkdir('aaa', (err) => {
if (err) {
console.log(err)
}
console.log('目錄創建成功')
})
// 創建遞歸文件目錄
fs.mkdir('aaa/bbb/ccc', { recursive: true }, (err) => {
if (err) {
console.log(err)
}
console.log('目錄創建成功')
})
~~~
>[danger] ### fs.mkdirSync(path[, options])
1. `fs.mkdirSync(path[, options])`是 Node.js 中用于同步創建目錄的 API 之一。它接受兩個參數:
* `path`:要創建的目錄的路徑,可以是絕對路徑或相對路徑。
* `options`:可選參數,用于指定目錄的權限,默認值為 0o777。該參數是一個對象,可以包含以下屬性:
* `recursive`:一個布爾值,指定是否遞歸地創建目錄及其父級目錄。默認值為`false`。如果設置為`true`,則會在創建目錄時自動創建缺失的父級目錄。
* `mode`:一個整數,指定目錄的權限。默認值為 0o777。
2. 方法使用了 try-catch 語句來處理創建目錄時可能發生的錯誤。如果目錄創建成功,控制臺會輸出`目錄已創建`。如果目錄已經存在,或者沒有足夠的權限來創建目錄,`fs.mkdirSync`方法將會拋出一個錯誤對象,可以在 catch 塊中捕獲并進行處理。
3. recursive: true 方法來遞歸地創建目錄。
| 參數 | 類型 | 描述 |
| --- | --- | --- |
| `path` | string | 要創建的目錄的路徑,可以是絕對路徑或相對路徑。 |
| `options` | object | 可選參數,用于指定目錄的權限和遞歸創建。包含以下屬性: |
| | `mode` | 一個整數,指定目錄的權限。默認值為 0o777。 |
| | `recursive` | 一個布爾值,指定是否遞歸地創建目錄及其父級目錄。默認值為`false`。 |
>[danger] ##### 案例
~~~
const fs = require('fs')
// 同步創建目錄
try {
fs.mkdirSync('./aaa')
} catch (e) {
// 如果目錄已存在會報錯
console.log(e)
}
// 遞歸創建
try {
fs.mkdirSync('./aa/bbb/cccss', { recursive: true })
} catch (e) {
// 如果目錄已存在會報錯
console.log(e)
}
~~~
- 基礎
- 什么是Node.js
- 理解 I/O 模型
- 理解node 中 I/O
- 對比node 和java 使用場景
- node 模塊管理
- 內置模塊 -- buffer
- 內置模塊 -- fs
- fs -- 文件描述符
- fs -- 打開文件 api
- fs -- 文件讀取 api
- fs -- 文件寫入 api
- fs -- 創建目錄 api
- fs -- 讀取文件目錄結構 api
- fs -- 文件狀態(信息) api
- fs -- 刪除文件/目錄 api
- fs -- 重命名 api
- fs -- 復制文件 api
- 內置模塊 -- events
- 內置模塊 -- stream
- 可讀流 -- Readable
- 可寫流 -- Writable
- Duplex
- Transform
- 內置模塊 -- http
- http -- 從客戶端發起
- http -- 從服務端發起
- 內置模塊 -- url
- 網絡開發