>[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
- 网络开发