Home  >  Article  >  Web Front-end  >  Learn about folder writing in Node.js

Learn about folder writing in Node.js

青灯夜游
青灯夜游forward
2020-12-07 17:51:363370browse

This article will introduce to you the folder writing in Node.js. It has certain reference value. Friends in need can refer to it. I hope it will be helpful to everyone.

Learn about folder writing in Node.js

Related recommendations: "node js tutorial"

fs.Dir & fs.Dirent

fs.Dir is the class of an iterable directory stream, fs.Dirent is the directory item obtained by traversing fs.Dir, which can be a file or a subdirectory in the directory

fs.Dir

  • dir.path: The read-only path of the directory
  • dir.read(): If the callabck function is not passed in, a Promise will be returned. Read the next directory item of the iterator and return a Promise, resolve Finally get fs.Dirent or null (if there are no more directory entries to read)
  • dir.close(): If the callabck function is not passed in, Promise is returned and the underlying resource handle of the directory is closed

fs.Dirent

  • dirent.name
  • dirent.isDirectory()
  • dirent.isFile()
  • dirent.isSymbolicLink()

fs.opendir

fs.opendir(path[, options], callback) Open a directory and return fs.Dir Object

const fs = require('fs/promises');

async function print(path) {
  const dir = await fs.opendir(path);
  for await (const dirent of dir) {
    console.log(dirent.name);
  }
}
print('./').catch(console.error);

can iterate dir

const fs = require('fs/promises');

async function print(path) {
  const dir = await fs.opendir(path);
  let dirent = await dir.read();
  while (dirent) {
    console.log(dirent.name);
    dirent = await dir.read();
  }

  dir.close();
}
print('./').catch(console.error);

fs.readdir

fs.readdir(path[, options], callback) Read the contents of the directory. The callback has two parameters (err, files), where files is an array of file names in the directory (excluding '.' and '..')
options

  • encoding: Default value utf8, if encoding is set to 'buffer', the returned file name is a Buffer object
  • withFileTypes: Default value false, set to true and callback function files The array will contain fs.Dirent objects
const fs = require('fs/promises');

async function print(path) {
  const files = await fs.readdir(path);
  for (const file of files) {
    console.log(file);
  }
}
print('./').catch(console.error);

fs.mkdir

fs.mkdir(path[, options], callback) Create directory
options

  • recursive: The default value is false. When set to true, the equivalent command mkdir -p will create a directory that does not exist.
  • mode: The default value is 0o777, Windows Not supported
// 创建 /tmp/a/apple 目录,无论是否存在 /tmp 和 /tmp/a 目录。
fs.mkdir('/tmp/a/apple', { recursive: true }, err => {
  if (err) throw err;
});

fs.rmdir

fs.rmdir(path[, options], callback) fs.rmdir is used to delete folders
options

  • recursive: The default value is false. If true, recursive directory deletion is performed. In recursive mode, no error is reported if path does not exist, and the operation is retried on failure
  • retryDelay: Default 100, the number of milliseconds to wait between retries after an exception. This option is ignored if the recursive option is not true.
  • maxRetries: The default value is 0, indicating the number of retries after an exception occurs. If an EBUSY, EMFILE, ENFILE, ENOTEMPTY or EPERM error is encountered, Node. js will retry the operation with a linear backoff of retryDelay milliseconds on each attempt. If recursive is false, this option is ignored
const fs = require('fs');

fs.rmdir('./tmp', { recursive: true }, err => console.log);

Before, rmdir could only delete empty folders, but now it can delete them together with files

More For programming related knowledge, please visit: Programming Teaching! !

The above is the detailed content of Learn about folder writing in Node.js. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:cnblogs.com. If there is any infringement, please contact admin@php.cn delete