node-fs-extra/docs/ensureDir.md
robertjacobson 402c1d0572 Show support for mode (#587)
Node fs's mkdir supports mode specification. After reviewing the source
fs-extra does as well, but is not documented. Update the documentation
to include the `options` parameter and provide a few examples of using
`mode`.
2018-08-11 15:08:20 -05:00

1.5 KiB

ensureDir(dir[,options][,callback])

Ensures that the directory exists. If the directory structure does not exist, it is created. Like mkdir -p.

Aliases: mkdirs(), mkdirp()

  • dir <String>
  • options <Integer>|<Object>
  • callback <Function>

Example:

const fs = require('fs-extra')

const dir = '/tmp/this/path/does/not/exist'
const desiredMode = 0o2775
const options = {
  mode: 0o2775
}

// With a callback:
fs.ensureDir(dir, err => {
  console.log(err) // => null
  // dir has now been created, including the directory it is to be placed in
})

// With a callback and a mode integer
fs.ensureDir(dir, desiredMode, err => {
  console.log(err) // => null
  // dir has now been created with mode 0o2775, including the directory it is to be placed in
})

// With Promises:
fs.ensureDir(dir)
.then(() => {
  console.log('success!')
})
.catch(err => {
  console.error(err)
})

// With Promises and a mode integer:
fs.ensureDir(dir, desiredMode)
.then(() => {
  console.log('success!')
})
.catch(err => {
  console.error(err)
})

// With async/await:
async function example (directory) {
  try {
    await fs.ensureDir(directory)
    console.log('success!')
  } catch (err) {
    console.error(err)
  }
}
example(dir)

// With async/await and an options object, containing mode:
async function exampleMode (directory) {
  try {
    await fs.ensureDir(directory, options)
    console.log('success!')
  } catch (err) {
    console.error(err)
  }
}
exampleMode(dir)