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

Learn about folder writing in Node.js

青灯夜游
Release: 2020-12-07 17:51:36
forward
3485 people have browsed it

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);
Copy after login

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);
Copy after login

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);
Copy after login

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;
});
Copy after login

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);
Copy after login

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!

Related labels:
source:cnblogs.com
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template