Spec-Zone.ru › Deno 2

fs

Модуль node:fs позволяет взаимодействовать с файловой системой с помощью функций, созданных по образцу стандартных функций POSIX.

Для использования API на основе промисов:

import * as fs from 'node:fs/promises';

Для использования API с обратными вызовами и синхронного API:

import * as fs from 'node:fs';

Все операции с файловой системой имеют синхронные формы, формы с обратными вызовами и формы на основе промисов; они доступны как с использованием синтаксиса CommonJS, так и модулей ES6 (ESM).

Использование в Deno

import * as mod from "node:fs";

класс Dir

реализует AsyncIterable<Dirent>

Использование в Deno

import { Dir } from "node:fs";

Класс, представляющий поток каталога.

Создаётся с помощью opendir, opendirSync или fsPromises.opendir().

import { opendir } from 'node:fs/promises';

try {
  const dir = await opendir('./');
  for await (const dirent of dir)
    console.log(dirent.name);
} catch (err) {
  console.error(err);
}

При использовании асинхронного итератора объект fs.Dir автоматически закрывается после завершения работы итератора.

Свойства

path: string
только для чтения

Путь этого каталога только для чтения, указанный при вызове opendir, opendirSync или fsPromises.opendir().

Методы

[Symbol.asyncIterator](): AsyncIterator<Dirent>

Асинхронно перебирает каталог с помощью readdir(3), пока не будут прочитаны все записи.

close(): Promise<void>

Асинхронно закрывает дескриптор ресурса, лежащего в основе каталога. Последующие операции чтения завершатся ошибкой.

Возвращается промис, который будет выполнен после закрытия ресурса.

close(cb: NoParamCallback): void
closeSync(): void

Синхронно закрывает дескриптор ресурса, лежащего в основе каталога. Последующие операции чтения завершатся ошибкой.

read(): Promise<Dirent | null>

Асинхронно считывает следующую запись каталога с помощью readdir(3) как fs.Dirent.

Возвращается промис, который будет выполнен с результатом fs.Dirent или null, если записей каталога для чтения больше нет.

Записи каталога, возвращаемые этой функцией, идут в произвольном порядке, определяемом базовыми механизмами работы с каталогами операционной системы. Записи, добавленные или удалённые во время перебора каталога, могут не попасть в результаты перебора.

read(cb: (
err: ErrnoException | null,
dirEnt: Dirent | null,
) => void
): void
readSync(): Dirent | null

Синхронно считывает следующую запись каталога как fs.Dirent. Подробнее см. документацию POSIX по readdir(3).

Если записей каталога для чтения больше нет, будет возвращено null.

Записи каталога, возвращаемые этой функцией, идут в произвольном порядке, определяемом базовыми механизмами работы с каталогами операционной системы. Записи, добавленные или удалённые во время перебора каталога, могут не попасть в результаты перебора.


класс Dirent

Использование в Deno

import { Dirent } from "node:fs";

Представление записи каталога, которой может быть файл или подкаталог внутри каталога и которая возвращается при чтении из fs.Dir. Запись каталога представляет собой комбинацию имени файла и пары с типом файла.

Кроме того, если при вызове readdir или readdirSync параметр withFileTypes имеет значение true, результирующий массив заполняется объектами fs.Dirent вместо строк или Buffer.

Свойства

name: string

Имя файла, к которому относится этот объект fs.Dirent. Тип этого значения определяется параметром options.encoding, переданным в readdir или readdirSync.

parentPath: string

Базовый путь, к которому относится этот объект fs.Dirent.

path: string
устарело

Псевдоним для dirent.parentPath.

Методы

isBlockDevice(): boolean

Возвращает true, если объект fs.Dirent описывает блочное устройство.

isCharacterDevice(): boolean

Возвращает true, если объект fs.Dirent описывает символьное устройство.

isDirectory(): boolean

Возвращает true, если объект fs.Dirent описывает каталог файловой системы.

isFIFO(): boolean

Возвращает true, если объект fs.Dirent описывает канал FIFO (первым пришёл — первым вышел).

isFile(): boolean

Возвращает true, если объект fs.Dirent описывает обычный файл.

isSocket(): boolean

Возвращает true, если объект fs.Dirent описывает сокет.

isSymbolicLink(): boolean

Возвращает true, если объект fs.Dirent описывает символическую ссылку.


класс ReadStream

наследует stream.Readable

Использование в Deno

import { ReadStream } from "node:fs";

Экземпляры fs.ReadStream создаются и возвращаются функцией createReadStream.

Свойства

bytesRead: number

Количество байтов, прочитанных на данный момент.

path: string | Buffer

Путь к файлу, из которого поток читает данные, указанный в первом аргументе fs.createReadStream(). Если path передан в виде строки, то readStream.path будет строкой. Если path передан как Buffer, то readStream.path будет Buffer. Если задан fd, то readStream.path будет undefined.

pending: boolean

Это свойство имеет значение true, если базовый файл ещё не открыт, то есть до вызова события 'ready'.

Методы

addListener<K extends keyof ReadStreamEvents>(
event: K,
listener: ReadStreamEvents[K],
): this

events.EventEmitter

  1. open
  2. close
  3. ready
close(callback?: (err?: ErrnoException | null) => void): void
on<K extends keyof ReadStreamEvents>(
event: K,
listener: ReadStreamEvents[K],
): this
once<K extends keyof ReadStreamEvents>(
event: K,
listener: ReadStreamEvents[K],
): this
prependListener<K extends keyof ReadStreamEvents>(
event: K,
listener: ReadStreamEvents[K],
): this
prependOnceListener<K extends keyof ReadStreamEvents>(
event: K,
listener: ReadStreamEvents[K],
): this

класс WriteStream

наследует stream.Writable

Использование в Deno

import { WriteStream } from "node:fs";
  • Наследует stream.Writable

Экземпляры fs.WriteStream создаются и возвращаются функцией createWriteStream.

Свойства

bytesWritten: number

Количество байтов, записанных на данный момент. Не включает данные, ожидающие записи в очереди.

path: string | Buffer

Путь к файлу, в который поток записывает данные, указанный в первом аргументе createWriteStream. Если path передан в виде строки, то writeStream.path будет строкой. Если path передан как Buffer, то writeStream.path будет Buffer.

pending: boolean

Это свойство имеет значение true, если базовый файл ещё не открыт, то есть до вызова события 'ready'.

Методы

addListener<K extends keyof WriteStreamEvents>(
event: K,
listener: WriteStreamEvents[K],
): this

events.EventEmitter

  1. open
  2. close
  3. ready
close(callback?: (err?: ErrnoException | null) => void): void

Закрывает writeStream. При необходимости принимает функцию обратного вызова, которая будет выполнена после закрытия writeStream.

on<K extends keyof WriteStreamEvents>(
event: K,
listener: WriteStreamEvents[K],
): this
once<K extends keyof WriteStreamEvents>(
event: K,
listener: WriteStreamEvents[K],
): this
prependListener<K extends keyof WriteStreamEvents>(
event: K,
listener: WriteStreamEvents[K],
): this
prependOnceListener<K extends keyof WriteStreamEvents>(
event: K,
listener: WriteStreamEvents[K],
): this

функция access

Использование в Deno

import { access } from "node:fs";

Вариант перегрузки 1

access(
path: PathLike,
mode: number | undefined,
callback: NoParamCallback,
): void

Проверяет разрешения пользователя для файла или каталога, указанного в path. Аргумент mode — необязательное целое число, указывающее, какие проверки доступности следует выполнить. mode должно быть равно значению fs.constants.F_OK или маске, состоящей из побитового ИЛИ любых значений из fs.constants.R_OK, fs.constants.W_OK и fs.constants.X_OK (например, fs.constants.W_OK | fs.constants.R_OK). Возможные значения mode см. в File access constants.

Последний аргумент, callback, — функция обратного вызова, вызываемая с возможным аргументом ошибки. Если какая-либо проверка доступности завершается неудачей, аргумент ошибки будет объектом Error. В следующих примерах проверяется, существует ли package.json и доступен ли он для чтения или записи.

import { access, constants } from 'node:fs';

const file = 'package.json';

// Check if the file exists in the current directory.
access(file, constants.F_OK, (err) => {
  console.log(`${file}${err ? 'does not exist' : 'exists'}`);
});

// Check if the file is readable.
access(file, constants.R_OK, (err) => {
  console.log(`${file}${err ? 'is not readable' : 'is readable'}`);
});

// Check if the file is writable.
access(file, constants.W_OK, (err) => {
  console.log(`${file}${err ? 'is not writable' : 'is writable'}`);
});

// Check if the file is readable and writable.
access(file, constants.R_OK | constants.W_OK, (err) => {
  console.log(`${file}${err ? 'is not' : 'is'} readable and writable`);
});

Не используйте fs.access() для проверки доступности файла перед вызовом fs.open(), fs.readFile() или fs.writeFile(). Это создаёт состояние гонки, поскольку другие процессы могут изменить состояние файла между двумя вызовами. Вместо этого пользовательский код должен напрямую открыть файл, прочитать из него или записать в него и обработать ошибку, возникающую при отсутствии доступа к файлу.

запись (НЕ РЕКОМЕНДУЕТСЯ)

import { access, open, close } from 'node:fs';

access('myfile', (err) => {
  if (!err) {
    console.error('myfile already exists');
    return;
  }

  open('myfile', 'wx', (err, fd) => {
    if (err) throw err;

    try {
      writeMyData(fd);
    } finally {
      close(fd, (err) => {
        if (err) throw err;
      });
    }
  });
});

запись (РЕКОМЕНДУЕТСЯ)

import { open, close } from 'node:fs';

open('myfile', 'wx', (err, fd) => {
  if (err) {
    if (err.code === 'EEXIST') {
      console.error('myfile already exists');
      return;
    }

    throw err;
  }

  try {
    writeMyData(fd);
  } finally {
    close(fd, (err) => {
      if (err) throw err;
    });
  }
});

чтение (НЕ РЕКОМЕНДУЕТСЯ)

import { access, open, close } from 'node:fs';
access('myfile', (err) => {
  if (err) {
    if (err.code === 'ENOENT') {
      console.error('myfile does not exist');
      return;
    }

    throw err;
  }

  open('myfile', 'r', (err, fd) => {
    if (err) throw err;

    try {
      readMyData(fd);
    } finally {
      close(fd, (err) => {
        if (err) throw err;
      });
    }
  });
});

чтение (РЕКОМЕНДУЕТСЯ)

import { open, close } from 'node:fs';

open('myfile', 'r', (err, fd) => {
  if (err) {
    if (err.code === 'ENOENT') {
      console.error('myfile does not exist');
      return;
    }

    throw err;
  }

  try {
    readMyData(fd);
  } finally {
    close(fd, (err) => {
      if (err) throw err;
    });
  }
});

В примерах «не рекомендуется» выше сначала проверяется доступность, а затем используется файл; примеры «рекомендуется» лучше, потому что файл используется напрямую, а возможная ошибка обрабатывается.

Как правило, проверяйте доступность файла только в том случае, если он не будет использоваться напрямую, например когда доступность служит сигналом от другого процесса.

В Windows политики управления доступом (ACL) для каталога могут ограничивать доступ к файлу или каталогу. Однако функция fs.access() не проверяет ACL и поэтому может сообщить, что путь доступен, даже если ACL ограничивает пользователю возможность чтения или записи.

Параметры

path: PathLike
mode: number | undefined = fs.constants.F_OK
необязательный
callback: NoParamCallback

Тип возвращаемого значения

void

Вариант перегрузки 2

access(
path: PathLike,
callback: NoParamCallback,
): void

Асинхронно проверяет разрешения пользователя для файла, указанного в пути.

Параметры

path: PathLike

Путь к файлу или каталогу. Если указан URL, он должен использовать протокол file:.

callback: NoParamCallback

Тип возвращаемого значения

void

функция accessSync

Использование в Deno

import { accessSync } from "node:fs";
accessSync(
path: PathLike,
mode?: number,
): void

Синхронно проверяет разрешения пользователя для файла или каталога, указанного в path. Аргумент mode — необязательное целое число, указывающее, какие проверки доступности следует выполнить. mode должно быть равно значению fs.constants.F_OK или маске, состоящей из побитового ИЛИ любых значений из fs.constants.R_OK, fs.constants.W_OK и fs.constants.X_OK (например, fs.constants.W_OK | fs.constants.R_OK). Возможные значения mode см. в File access constants.

Если какая-либо проверка доступности завершается неудачей, будет выброшено исключение Error. В противном случае метод вернёт undefined.

import { accessSync, constants } from 'node:fs';

try {
  accessSync('etc/passwd', constants.R_OK | constants.W_OK);
  console.log('can read/write');
} catch (err) {
  console.error('no access!');
}

Параметры

path: PathLike
mode: number = fs.constants.F_OK
необязательный

Тип возвращаемого значения

void

функция appendFile

Использование в Deno

import { appendFile } from "node:fs";

Вариант перегрузки 1

appendFile(
path: PathOrFileDescriptor,
data: string | Uint8Array,
options: WriteFileOptions,
callback: NoParamCallback,
): void

Асинхронно добавляет данные в файл, создавая его, если он ещё не существует. data может быть строкой или Buffer.

Параметр mode влияет только на вновь созданный файл. Подробнее см. open.

import { appendFile } from 'node:fs';

appendFile('message.txt', 'data to append', (err) => {
  if (err) throw err;
  console.log('The "data to append" was appended to file!');
});

Если options — строка, она задаёт кодировку:

import { appendFile } from 'node:fs';

appendFile('message.txt', 'data to append', 'utf8', callback);

Значение path можно указать как числовой файловый дескриптор, открытый для добавления данных (с помощью fs.open() или fs.openSync()). Файловый дескриптор не будет закрыт автоматически.

import { open, close, appendFile } from 'node:fs';

function closeFd(fd) {
  close(fd, (err) => {
    if (err) throw err;
  });
}

open('message.txt', 'a', (err, fd) => {
  if (err) throw err;

  try {
    appendFile(fd, 'data to append', 'utf8', (err) => {
      closeFd(fd);
      if (err) throw err;
    });
  } catch (err) {
    closeFd(fd);
    throw err;
  }
});

Параметры

path: PathOrFileDescriptor

имя файла или файловый дескриптор

data: string | Uint8Array
options: WriteFileOptions
callback: NoParamCallback

Тип возвращаемого значения

void

Вариант перегрузки 2

appendFile(
file: PathOrFileDescriptor,
data: string | Uint8Array,
callback: NoParamCallback,
): void

Асинхронно добавляет данные в файл, создавая его, если он ещё не существует.

Параметры

file: PathOrFileDescriptor

Путь к файлу. Если указан URL, он должен использовать протокол file:. Если указан файловый дескриптор, базовый файл не будет закрыт автоматически.

data: string | Uint8Array

Данные для записи. Если передано значение, отличное от Buffer или Uint8Array, оно преобразуется в строку.

callback: NoParamCallback

Тип возвращаемого значения

void

функция appendFileSync

Использование в Deno

import { appendFileSync } from "node:fs";
appendFileSync(
path: PathOrFileDescriptor,
data: string | Uint8Array,
options?: WriteFileOptions,
): void

Синхронно добавляет данные в файл, создавая его, если он ещё не существует. data может быть строкой или Buffer.

Параметр mode влияет только на вновь созданный файл. Подробнее см. в описании open.

import { appendFileSync } from 'node:fs';

try {
  appendFileSync('message.txt', 'data to append');
  console.log('The "data to append" was appended to file!');
} catch (err) {
  // Handle the error
}

Если options — строка, она указывает кодировку:

import { appendFileSync } from 'node:fs';

appendFileSync('message.txt', 'data to append', 'utf8');

Параметр path можно указать как числовой дескриптор файла, открытого для добавления данных (с помощью fs.open() или fs.openSync()). Дескриптор файла не будет закрыт автоматически.

import { openSync, closeSync, appendFileSync } from 'node:fs';

let fd;

try {
  fd = openSync('message.txt', 'a');
  appendFileSync(fd, 'data to append', 'utf8');
} catch (err) {
  // Handle the error
} finally {
  if (fd !== undefined)
    closeSync(fd);
}

Параметры

path: PathOrFileDescriptor

имя файла или дескриптор файла

data: string | Uint8Array
options: WriteFileOptions
необязательный

Тип возвращаемого значения

void

функция chmod

Использование в Deno

import { chmod } from "node:fs";
chmod(
path: PathLike,
mode: Mode,
callback: NoParamCallback,
): void

Асинхронно изменяет права доступа к файлу. В функцию обратного вызова завершения передаются только возможная ошибка и никакие другие аргументы.

Подробнее см. в документации POSIX для chmod(2).

import { chmod } from 'node:fs';

chmod('my_file.txt', 0o775, (err) => {
  if (err) throw err;
  console.log('The permissions for file "my_file.txt" have been changed!');
});

Параметры

path: PathLike
mode: Mode
callback: NoParamCallback

Тип возвращаемого значения

void

функция chmodSync

Использование в Deno

import { chmodSync } from "node:fs";
chmodSync(
path: PathLike,
mode: Mode,
): void

Подробные сведения см. в документации по асинхронной версии этого API: chmod.

Подробнее см. в документации POSIX для chmod(2).

Параметры

path: PathLike
mode: Mode

Тип возвращаемого значения

void

функция chown

Использование в Deno

import { chown } from "node:fs";
chown(
path: PathLike,
uid: number,
gid: number,
callback: NoParamCallback,
): void

Асинхронно изменяет владельца и группу файла. В функцию обратного вызова завершения передаются только возможная ошибка и никакие другие аргументы.

Подробнее см. в документации POSIX для chown(2).

Параметры

path: PathLike
uid: number
gid: number
callback: NoParamCallback

Тип возвращаемого значения

void

функция chownSync

Использование в Deno

import { chownSync } from "node:fs";
chownSync(
path: PathLike,
uid: number,
gid: number,
): void

Синхронно изменяет владельца и группу файла. Возвращает undefined. Это синхронная версия chown.

Подробнее см. в документации POSIX для chown(2).

Параметры

path: PathLike
uid: number
gid: number

Тип возвращаемого значения

void

функция close

Использование в Deno

import { close } from "node:fs";
close(
fd: number,
callback?: NoParamCallback,
): void

Закрывает дескриптор файла. В функцию обратного вызова завершения передаются только возможная ошибка и никакие другие аргументы.

Вызов fs.close() для любого дескриптора файла (fd), который в данный момент используется в другой операции fs, может привести к неопределённому поведению.

Подробнее см. в документации POSIX для close(2).

Параметры

fd: number
callback: NoParamCallback
необязательный

Тип возвращаемого значения

void

функция closeSync

Использование в Deno

import { closeSync } from "node:fs";
closeSync(fd: number): void

Закрывает дескриптор файла. Возвращает undefined.

Вызов fs.closeSync() для любого дескриптора файла (fd), который в данный момент используется в другой операции fs, может привести к неопределённому поведению.

Подробнее см. в документации POSIX для close(2).

Параметры

fd: number

Тип возвращаемого значения

void

функция copyFile

Использование в Deno

import { copyFile } from "node:fs";

Перегрузка 1

copyFile(
src: PathLike,
dest: PathLike,
callback: NoParamCallback,
): void

Асинхронно копирует src в dest. По умолчанию, если dest уже существует, он перезаписывается. В функцию обратного вызова передаётся только возможная ошибка и никакие другие аргументы. Node.js не гарантирует атомарность операции копирования. Если ошибка возникает после открытия целевого файла для записи, Node.js попытается удалить его.

mode — необязательное целое число, определяющее поведение операции копирования. Можно создать маску, объединив поразрядной операцией ИЛИ два или более значения (например, fs.constants.COPYFILE_EXCL | fs.constants.COPYFILE_FICLONE).

  • fs.constants.COPYFILE_EXCL: операция копирования завершится ошибкой, если dest уже существует.
  • fs.constants.COPYFILE_FICLONE: при копировании будет предпринята попытка создать reflink с копированием при записи. Если платформа не поддерживает копирование при записи, используется резервный механизм копирования.
  • fs.constants.COPYFILE_FICLONE_FORCE: при копировании будет предпринята попытка создать reflink с копированием при записи. Если платформа не поддерживает копирование при записи, операция завершится ошибкой.
import { copyFile, constants } from 'node:fs';

function callback(err) {
  if (err) throw err;
  console.log('source.txt was copied to destination.txt');
}

// destination.txt will be created or overwritten by default.
copyFile('source.txt', 'destination.txt', callback);

// By using COPYFILE_EXCL, the operation will fail if destination.txt exists.
copyFile('source.txt', 'destination.txt', constants.COPYFILE_EXCL, callback);

Параметры

src: PathLike

имя исходного файла для копирования

dest: PathLike

имя целевого файла для операции копирования

callback: NoParamCallback

Тип возвращаемого значения

void

Перегрузка 2

copyFile(
src: PathLike,
dest: PathLike,
mode: number,
callback: NoParamCallback,
): void

Параметры

src: PathLike
dest: PathLike
mode: number
callback: NoParamCallback

Тип возвращаемого значения

void

функция copyFileSync

Использование в Deno

import { copyFileSync } from "node:fs";
copyFileSync(
src: PathLike,
dest: PathLike,
mode?: number,
): void

Синхронно копирует src в dest. По умолчанию, если dest уже существует, он перезаписывается. Возвращает undefined. Node.js не гарантирует атомарность операции копирования. Если ошибка возникает после открытия целевого файла для записи, Node.js попытается удалить его.

mode — необязательное целое число, определяющее поведение операции копирования. Можно создать маску, объединив поразрядной операцией ИЛИ два или более значения (например, fs.constants.COPYFILE_EXCL | fs.constants.COPYFILE_FICLONE).

  • fs.constants.COPYFILE_EXCL: операция копирования завершится ошибкой, если dest уже существует.
  • fs.constants.COPYFILE_FICLONE: при копировании будет предпринята попытка создать reflink с копированием при записи. Если платформа не поддерживает копирование при записи, используется резервный механизм копирования.
  • fs.constants.COPYFILE_FICLONE_FORCE: при копировании будет предпринята попытка создать reflink с копированием при записи. Если платформа не поддерживает копирование при записи, операция завершится ошибкой.
import { copyFileSync, constants } from 'node:fs';

// destination.txt will be created or overwritten by default.
copyFileSync('source.txt', 'destination.txt');
console.log('source.txt was copied to destination.txt');

// By using COPYFILE_EXCL, the operation will fail if destination.txt exists.
copyFileSync('source.txt', 'destination.txt', constants.COPYFILE_EXCL);

Параметры

src: PathLike

имя исходного файла для копирования

dest: PathLike

имя целевого файла для операции копирования

mode: number = 0
необязательный

модификаторы операции копирования.

Тип возвращаемого значения

void

функция cp

нестабильный

Использование в Deno

import { cp } from "node:fs";

Перегрузка 1

cp(
source: string | URL,
destination: string | URL,
callback: (err: ErrnoException | null) => void,
): void

Асинхронно копирует всю структуру каталогов из src в dest, включая вложенные каталоги и файлы.

При копировании каталога в другой каталог шаблоны glob не поддерживаются, а поведение аналогично cp dir1/ dir2/.

Параметры

source: string | URL
destination: string | URL
callback: (err: ErrnoException | null) => void

Тип возвращаемого значения

void

Перегрузка 2

cp(
source: string | URL,
destination: string | URL,
opts: CopyOptions,
callback: (err: ErrnoException | null) => void,
): void

Параметры

source: string | URL
destination: string | URL
opts: CopyOptions
callback: (err: ErrnoException | null) => void

Тип возвращаемого значения

void

функция cpSync

нестабильный

Использование в Deno

import { cpSync } from "node:fs";
cpSync(
source: string | URL,
destination: string | URL,
opts?: CopySyncOptions,
): void

Синхронно копирует всю структуру каталогов из src в dest, включая вложенные каталоги и файлы.

При копировании каталога в другой каталог шаблоны glob не поддерживаются, а поведение аналогично cp dir1/ dir2/.

Параметры

source: string | URL
destination: string | URL
opts: CopySyncOptions
необязательный

Тип возвращаемого значения

void

функция createReadStream

Использование в Deno

import { createReadStream } from "node:fs";
createReadStream(
path: PathLike,
options?: BufferEncoding | ReadStreamOptions,
): ReadStream

options может включать значения start и end для чтения диапазона байтов из файла вместо всего файла. И start, и end включаются в диапазон и отсчитываются от 0; допустимые значения находятся в диапазоне [0, Number.MAX_SAFE_INTEGER]. Если указано fd, а start не указано или равно undefined, fs.createReadStream() выполняет последовательное чтение с текущей позиции в файле. encoding может принимать любое из значений, допустимых для Buffer.

Если указано fd, ReadStream проигнорирует аргумент path и будет использовать указанный файловый дескриптор. Это означает, что событие 'open' не будет вызвано. fd должен быть блокирующим; неблокирующие fd следует передавать в net.Socket.

Если fd указывает на символьное устройство, поддерживающее только блокирующее чтение (например, клавиатуру или звуковую карту), операции чтения не завершаются, пока данные не станут доступны. Это может помешать завершению процесса и естественному закрытию потока.

По умолчанию поток вызовет событие 'close' после уничтожения. Чтобы изменить это поведение, установите для параметра emitClose значение false.

Параметр fs позволяет переопределить соответствующие реализации fs для open, read и close. При указании параметра fs необходимо переопределить read. Если fd не предоставлен, также необходимо переопределить open. Если autoClose равен true, также необходимо переопределить close.

import { createReadStream } from 'node:fs';

// Create a stream from some character device.
const stream = createReadStream('/dev/input/event0');
setTimeout(() => {
  stream.close(); // This may not close the stream.
  // Artificially marking end-of-stream, as if the underlying resource had
  // indicated end-of-file by itself, allows the stream to close.
  // This does not cancel pending read operations, and if there is such an
  // operation, the process may still not be able to exit successfully
  // until it finishes.
  stream.push(null);
  stream.read(0);
}, 100);

Если autoClose равно false, файловый дескриптор не будет закрыт, даже в случае ошибки. Приложение должно закрыть его самостоятельно и убедиться, что утечки файловых дескрипторов не происходит. Если для autoClose установлено значение true (поведение по умолчанию), при возникновении 'error' или 'end' файловый дескриптор будет закрыт автоматически.

mode задает режим файла (права доступа и бит sticky), но только если файл был создан.

Пример чтения последних 10 байтов файла размером 100 байтов:

import { createReadStream } from 'node:fs';

createReadStream('sample.txt', { start: 90, end: 99 });

Если options является строкой, она задает кодировку.

Параметры

path: PathLike
options: BufferEncoding | ReadStreamOptions
необязательный

Возвращаемый тип

ReadStream

функция createWriteStream

Использование в Deno

import { createWriteStream } from "node:fs";
createWriteStream(
path: PathLike,
options?: BufferEncoding | WriteStreamOptions,
): WriteStream

options может также включать параметр start, позволяющий записывать данные в позицию после начала файла; допустимые значения находятся в диапазоне [0, Number.MAX_SAFE_INTEGER]. Чтобы изменить файл, а не заменить его, может потребоваться установить для параметра flags значение r+ вместо значения по умолчанию w. encoding может принимать любое из значений, допустимых для Buffer.

Если для autoClose установлено значение true (поведение по умолчанию), при возникновении 'error' или 'finish' файловый дескриптор будет закрыт автоматически. Если autoClose равно false, файловый дескриптор не будет закрыт, даже в случае ошибки. Приложение должно закрыть его самостоятельно и убедиться, что утечки файловых дескрипторов не происходит.

По умолчанию поток вызовет событие 'close' после уничтожения. Чтобы изменить это поведение, установите для параметра emitClose значение false.

Параметр fs позволяет переопределить соответствующие реализации fs для open, write, writev и close. Переопределение write() без writev() может снизить производительность, поскольку некоторые оптимизации (_writev()) будут отключены. При указании параметра fs необходимо переопределить как минимум один из параметров write и writev. Если параметр fd не задан, также необходимо переопределить open. Если autoClose равен true, также необходимо переопределить close.

Как и в случае с fs.ReadStream, если указан fd, fs.WriteStream проигнорирует аргумент path и будет использовать указанный файловый дескриптор. Это означает, что событие 'open' не будет вызвано. fd должен быть блокирующим; неблокирующие fd следует передавать в net.Socket.

Если options является строкой, она задает кодировку.

Параметры

path: PathLike
options: BufferEncoding | WriteStreamOptions
необязательный

Возвращаемый тип

WriteStream

функция existsSync

Использование в Deno

import { existsSync } from "node:fs";
existsSync(path: PathLike): boolean

Возвращает true, если путь существует, и false в противном случае.

Подробную информацию см. в документации асинхронной версии этого API: exists.

fs.exists() устарела, но fs.existsSync() — нет. Параметр callback для fs.exists() принимает параметры, не согласующиеся с другими обратными вызовами Node.js. fs.existsSync() не использует обратный вызов.

import { existsSync } from 'node:fs';

if (existsSync('/etc/passwd'))
  console.log('The path exists.');

Параметры

path: PathLike

Возвращаемый тип

boolean

функция fchmod

Использование в Deno

import { fchmod } from "node:fs";
fchmod(
fd: number,
mode: Mode,
callback: NoParamCallback,
): void

Задает права доступа к файлу. В функцию обратного вызова завершения передаются только возможная ошибка и никаких других аргументов.

Подробнее см. документацию POSIX для fchmod(2).

Параметры

fd: number
mode: Mode
callback: NoParamCallback

Возвращаемый тип

void

функция fchmodSync

Использование в Deno

import { fchmodSync } from "node:fs";
fchmodSync(
fd: number,
mode: Mode,
): void

Задает права доступа к файлу. Возвращает undefined.

Подробнее см. документацию POSIX для fchmod(2).

Параметры

fd: number
mode: Mode

Возвращаемый тип

void

функция fchown

Использование в Deno

import { fchown } from "node:fs";
fchown(
fd: number,
uid: number,
gid: number,
callback: NoParamCallback,
): void

Задает владельца файла. В функцию обратного вызова завершения передаются только возможная ошибка и никаких других аргументов.

Подробнее см. документацию POSIX для fchown(2).

Параметры

fd: number
uid: number
gid: number
callback: NoParamCallback

Возвращаемый тип

void

функция fchownSync

Использование в Deno

import { fchownSync } from "node:fs";
fchownSync(
fd: number,
uid: number,
gid: number,
): void

Задает владельца файла. Возвращает undefined.

Подробнее см. документацию POSIX для fchown(2).

Параметры

fd: number
uid: number

Идентификатор пользователя нового владельца файла.

gid: number

Идентификатор группы нового владельца файла.

Возвращаемый тип

void

функция fdatasync

Использование в Deno

import { fdatasync } from "node:fs";
fdatasync(
fd: number,
callback: NoParamCallback,
): void

Принудительно переводит все поставленные в очередь операции ввода-вывода, связанные с файлом, в состояние завершенного синхронизированного ввода-вывода операционной системы. Подробности см. в документации POSIX для fdatasync(2). В функцию обратного вызова завершения передаются только возможная ошибка и никаких других аргументов.

Параметры

fd: number
callback: NoParamCallback

Возвращаемый тип

void

функция fdatasyncSync

Использование в Deno

import { fdatasyncSync } from "node:fs";
fdatasyncSync(fd: number): void

Принудительно переводит все поставленные в очередь операции ввода-вывода, связанные с файлом, в состояние завершенного синхронизированного ввода-вывода операционной системы. Подробности см. в документации POSIX для fdatasync(2). Возвращает undefined.

Параметры

fd: number

Возвращаемый тип

void

функция fstat

Использование в Deno

import { fstat } from "node:fs";

Вариант перегрузки 1

fstat(
fd: number,
callback: (
err: ErrnoException | null,
stats: Stats,
) => void
,
): void

Вызывает функцию обратного вызова, передавая ей fs.Stats для файлового дескриптора.

Подробнее см. документацию POSIX для fstat(2).

Параметры

fd: number
callback: (
err: ErrnoException | null,
stats: Stats,
) => void

Возвращаемый тип

void

Вариант перегрузки 2

fstat(
fd: number,
options: (StatOptions & { bigint?: false | undefined; }) | undefined,
callback: (
err: ErrnoException | null,
stats: Stats,
) => void
,
): void

Параметры

fd: number
options: (StatOptions & { bigint?: false | undefined; }) | undefined
callback: (
err: ErrnoException | null,
stats: Stats,
) => void

Возвращаемый тип

void

Вариант перегрузки 3

fstat(
fd: number,
options: StatOptions & { bigint: true; },
callback: (
err: ErrnoException | null,
stats: BigIntStats,
) => void
,
): void

Параметры

fd: number
options: StatOptions & { bigint: true; }
callback: (
err: ErrnoException | null,
stats: BigIntStats,
) => void

Возвращаемый тип

void

Вариант перегрузки 4

fstat(
fd: number,
options: StatOptions | undefined,
callback: (
err: ErrnoException | null,
stats: Stats | BigIntStats,
) => void
,
): void

Параметры

fd: number
options: StatOptions | undefined
callback: (
err: ErrnoException | null,
stats: Stats | BigIntStats,
) => void

Возвращаемый тип

void

функция fstatSync

Использование в Deno

import { fstatSync } from "node:fs";

Перегрузка 1

fstatSync(
fd: number,
options?: StatOptions & { bigint?: false | undefined; },
): Stats

Получает fs.Stats для файлового дескриптора.

Дополнительные сведения см. в документации POSIX fstat(2).

Параметры

fd: number
options: StatOptions & { bigint?: false | undefined; }
необязательный

Тип возвращаемого значения

Stats

Перегрузка 2

fstatSync(
fd: number,
options: StatOptions & { bigint: true; },
): BigIntStats

Параметры

fd: number
options: StatOptions & { bigint: true; }

Тип возвращаемого значения

BigIntStats

Перегрузка 3

fstatSync(
fd: number,
options?: StatOptions,
): Stats | BigIntStats

Параметры

fd: number
options: StatOptions
необязательный

Тип возвращаемого значения

Stats | BigIntStats

функция fsync

Использование в Deno

import { fsync } from "node:fs";
fsync(
fd: number,
callback: NoParamCallback,
): void

Запрашивает сброс всех данных открытого файлового дескриптора на устройство хранения. Конкретная реализация зависит от операционной системы и устройства. Дополнительные сведения см. в документации POSIX fsync(2). В функцию обратного вызова завершения передаются только аргументы, содержащие возможное исключение.

Параметры

fd: number
callback: NoParamCallback

Тип возвращаемого значения

void

функция fsyncSync

Использование в Deno

import { fsyncSync } from "node:fs";
fsyncSync(fd: number): void

Запрашивает сброс всех данных открытого файлового дескриптора на устройство хранения. Конкретная реализация зависит от операционной системы и устройства. Дополнительные сведения см. в документации POSIX fsync(2). Возвращает undefined.

Параметры

fd: number

Тип возвращаемого значения

void

функция ftruncate

Использование в Deno

import { ftruncate } from "node:fs";

Перегрузка 1

ftruncate(
fd: number,
len: number | undefined,
callback: NoParamCallback,
): void

Усекает файл, указанный файловым дескриптором. В функцию обратного вызова завершения передаются только аргументы, содержащие возможное исключение.

Дополнительные сведения см. в документации POSIX ftruncate(2).

Если размер файла, на который ссылается файловый дескриптор, превышает len байт, в файле останутся только первые len байт.

Например, следующая программа оставляет только первые четыре байта файла:

import { open, close, ftruncate } from 'node:fs';

function closeFd(fd) {
  close(fd, (err) => {
    if (err) throw err;
  });
}

open('temp.txt', 'r+', (err, fd) => {
  if (err) throw err;

  try {
    ftruncate(fd, 4, (err) => {
      closeFd(fd);
      if (err) throw err;
    });
  } catch (err) {
    closeFd(fd);
    if (err) throw err;
  }
});

Если размер файла ранее был меньше len байт, он увеличивается, а расширенная часть заполняется нулевыми байтами ('\0'):

Если len отрицательно, будет использовано 0.

Параметры

fd: number
len: number | undefined = 0
необязательный
callback: NoParamCallback

Тип возвращаемого значения

void

Перегрузка 2

ftruncate(
fd: number,
callback: NoParamCallback,
): void

Асинхронная версия ftruncate(2) — усечение файла до указанной длины.

Параметры

fd: number

Файловый дескриптор.

callback: NoParamCallback

Тип возвращаемого значения

void

функция ftruncateSync

Использование в Deno

import { ftruncateSync } from "node:fs";
ftruncateSync(
fd: number,
len?: number,
): void

Усекает файл, указанный файловым дескриптором. Возвращает undefined.

Подробные сведения см. в документации асинхронной версии этого API: ftruncate.

Параметры

fd: number
len: number = 0
необязательный

Тип возвращаемого значения

void

функция futimes

Использование в Deno

import { futimes } from "node:fs";
futimes(
fd: number,
atime: TimeLike,
mtime: TimeLike,
callback: NoParamCallback,
): void

Изменяет временные метки файловой системы объекта, на который ссылается указанный файловый дескриптор. См. utimes.

Параметры

fd: number
atime: TimeLike
mtime: TimeLike
callback: NoParamCallback

Тип возвращаемого значения

void

функция futimesSync

Использование в Deno

import { futimesSync } from "node:fs";
futimesSync(
fd: number,
atime: TimeLike,
mtime: TimeLike,
): void

Синхронная версия futimes. Возвращает undefined.

Параметры

fd: number
atime: TimeLike
mtime: TimeLike

Тип возвращаемого значения

void

функция glob

Использование в Deno

import { glob } from "node:fs";

Перегрузка 1

glob(
pattern: string | string[],
callback: (
err: ErrnoException | null,
matches: string[],
) => void
,
): void

Получает файлы, соответствующие указанному шаблону.

Параметры

pattern: string | string[]
callback: (
err: ErrnoException | null,
matches: string[],
) => void

Тип возвращаемого значения

void

Перегрузка 2

glob(
pattern: string | string[],
options: GlobOptionsWithFileTypes,
callback: (
err: ErrnoException | null,
matches: Dirent[],
) => void
,
): void

Параметры

pattern: string | string[]
options: GlobOptionsWithFileTypes
callback: (
err: ErrnoException | null,
matches: Dirent[],
) => void

Тип возвращаемого значения

void

Перегрузка 3

glob(
pattern: string | string[],
options: GlobOptionsWithoutFileTypes,
callback: (
err: ErrnoException | null,
matches: string[],
) => void
,
): void

Параметры

pattern: string | string[]
options: GlobOptionsWithoutFileTypes
callback: (
err: ErrnoException | null,
matches: string[],
) => void

Тип возвращаемого значения

void

Перегрузка 4

glob(
pattern: string | string[],
options: GlobOptions,
callback: (
err: ErrnoException | null,
matches: Dirent[] | string[],
) => void
,
): void

Параметры

pattern: string | string[]
options: GlobOptions
callback: (
err: ErrnoException | null,
matches: Dirent[] | string[],
) => void

Тип возвращаемого значения

void

функция globSync

Использование в Deno

import { globSync } from "node:fs";

Перегрузка 1

globSync(pattern: string | string[]): string[]

Получает файлы, соответствующие указанному шаблону.

Параметры

pattern: string | string[]

Тип возвращаемого значения

string[]

Перегрузка 2

globSync(
pattern: string | string[],
options: GlobOptionsWithFileTypes,
): Dirent[]

Параметры

pattern: string | string[]
options: GlobOptionsWithFileTypes

Тип возвращаемого значения

Dirent[]

Перегрузка 3

globSync(
pattern: string | string[],
options: GlobOptionsWithoutFileTypes,
): string[]

Параметры

pattern: string | string[]
options: GlobOptionsWithoutFileTypes

Тип возвращаемого значения

string[]

Перегрузка 4

globSync(
pattern: string | string[],
options: GlobOptions,
): Dirent[] | string[]

Параметры

pattern: string | string[]
options: GlobOptions

Тип возвращаемого значения

Dirent[] | string[]

функция lchown

Использование в Deno

import { lchown } from "node:fs";
lchown(
path: PathLike,
uid: number,
gid: number,
callback: NoParamCallback,
): void

Задает владельца символической ссылки. В функцию обратного вызова завершения передаются только аргументы, содержащие возможное исключение.

Дополнительные сведения см. в документации POSIX lchown(2).

Параметры

path: PathLike
uid: number
gid: number
callback: NoParamCallback

Тип возвращаемого значения

void

функция lchownSync

Использование в Deno

import { lchownSync } from "node:fs";
lchownSync(
path: PathLike,
uid: number,
gid: number,
): void

Задает владельца для указанного пути. Возвращает undefined.

Дополнительные сведения см. в документации POSIX lchown(2).

Параметры

path: PathLike
uid: number

Идентификатор пользователя нового владельца файла.

gid: number

Идентификатор группы новой группы файла.

Тип возвращаемого значения

void

функция link

Использование в Deno

import { link } from "node:fs";
link(
existingPath: PathLike,
newPath: PathLike,
callback: NoParamCallback,
): void

Создаёт новую ссылку от existingPath к newPath. Дополнительные сведения см. в документации POSIX link(2). В функцию обратного вызова завершения передаются только аргументы, содержащие возможное исключение.

Параметры

existingPath: PathLike
newPath: PathLike
callback: NoParamCallback

Возвращаемый тип

void

функция linkSync

Использование в Deno

import { linkSync } from "node:fs";
linkSync(
existingPath: PathLike,
newPath: PathLike,
): void

Создаёт новую ссылку от existingPath к newPath. Дополнительные сведения см. в документации POSIX link(2). Возвращает undefined.

Параметры

existingPath: PathLike
newPath: PathLike

Возвращаемый тип

void

функция lstat

Использование в Deno

import { lstat } from "node:fs";

Перегрузка 1

lstat(
path: PathLike,
callback: (
err: ErrnoException | null,
stats: Stats,
) => void
,
): void

Получает fs.Stats для символической ссылки, указанной в пути. Функция обратного вызова получает два аргумента (err, stats), где stats — объект fs.Stats. lstat() идентична stat(), за исключением того, что если path является символической ссылкой, то сведения о самой ссылке получают с помощью stat, а не о файле, на который она указывает.

Дополнительные сведения см. в документации POSIX lstat(2).

Параметры

path: PathLike
callback: (
err: ErrnoException | null,
stats: Stats,
) => void

Возвращаемый тип

void

Перегрузка 2

lstat(
path: PathLike,
options: (StatOptions & { bigint?: false | undefined; }) | undefined,
callback: (
err: ErrnoException | null,
stats: Stats,
) => void
,
): void

Параметры

path: PathLike
options: (StatOptions & { bigint?: false | undefined; }) | undefined
callback: (
err: ErrnoException | null,
stats: Stats,
) => void

Возвращаемый тип

void

Перегрузка 3

lstat(
path: PathLike,
options: StatOptions & { bigint: true; },
callback: (
err: ErrnoException | null,
stats: BigIntStats,
) => void
,
): void

Параметры

path: PathLike
options: StatOptions & { bigint: true; }
callback: (
err: ErrnoException | null,
stats: BigIntStats,
) => void

Возвращаемый тип

void

Перегрузка 4

lstat(
path: PathLike,
options: StatOptions | undefined,
callback: (
err: ErrnoException | null,
stats: Stats | BigIntStats,
) => void
,
): void

Параметры

path: PathLike
options: StatOptions | undefined
callback: (
err: ErrnoException | null,
stats: Stats | BigIntStats,
) => void

Возвращаемый тип

void

функция lutimes

Использование в Deno

import { lutimes } from "node:fs";
lutimes(
path: PathLike,
atime: TimeLike,
mtime: TimeLike,
callback: NoParamCallback,
): void

Изменяет время доступа и изменения файла так же, как utimes, но если путь указывает на символическую ссылку, она не разыменовывается: вместо этого изменяются временные метки самой символической ссылки.

В функцию обратного вызова завершения передаются только аргументы, содержащие возможное исключение.

Параметры

path: PathLike
atime: TimeLike
mtime: TimeLike
callback: NoParamCallback

Возвращаемый тип

void

функция lutimesSync

Использование в Deno

import { lutimesSync } from "node:fs";
lutimesSync(
path: PathLike,
atime: TimeLike,
mtime: TimeLike,
): void

Изменяет временные метки файловой системы символической ссылки, на которую указывает path. Возвращает undefined или выбрасывает исключение, если параметры неверны или операция завершается с ошибкой. Это синхронная версия lutimes.

Параметры

path: PathLike
atime: TimeLike
mtime: TimeLike

Возвращаемый тип

void

функция mkdir

Использование в Deno

import { mkdir } from "node:fs";

Перегрузка 1

mkdir(
path: PathLike,
options: MakeDirectoryOptions & { recursive: true; },
callback: (
err: ErrnoException | null,
path?: string,
) => void
,
): void

Асинхронно создаёт каталог.

Функция обратного вызова получает возможное исключение и, если recursive — true, путь к первому созданному каталогу, (err[, path]).path по-прежнему может быть undefined, если recursive — true и каталог не был создан (например, если он уже существовал).

Необязательный аргумент options может быть целым числом, задающим mode (биты разрешений и sticky-биты), или объектом со свойством mode и свойством recursive, указывающим, следует ли создавать родительские каталоги. Вызов fs.mkdir(), когда path является существующим каталогом, приводит к ошибке только в том случае, если recursive имеет значение false. Если recursive имеет значение false и каталог существует, возникает ошибка EEXIST.

import { mkdir } from 'node:fs';

// Create ./tmp/a/apple, regardless of whether ./tmp and ./tmp/a exist.
mkdir('./tmp/a/apple', { recursive: true }, (err) => {
  if (err) throw err;
});

В Windows использование fs.mkdir() для корневого каталога, даже с рекурсивным созданием, приведёт к ошибке:

import { mkdir } from 'node:fs';

mkdir('/', { recursive: true }, (err) => {
  // => [Error: EPERM: operation not permitted, mkdir 'C:\']
});

Дополнительные сведения см. в документации POSIX mkdir(2).

Параметры

path: PathLike
options: MakeDirectoryOptions & { recursive: true; }
callback: (
err: ErrnoException | null,
path?: string,
) => void

Возвращаемый тип

void

Перегрузка 2

mkdir(
path: PathLike,
options:
Mode
| (MakeDirectoryOptions & { recursive?: false | undefined; })
| null
| undefined
,
callback: NoParamCallback,
): void

Асинхронный mkdir(2) — создание каталога.

Параметры

path: PathLike

Путь к файлу. Если указан URL, он должен использовать протокол file:.

options:
Mode
| (MakeDirectoryOptions & { recursive?: false | undefined; })
| null
| undefined

Режим доступа к файлу или объект, в котором можно указать режим доступа к файлу и необходимость создания родительских каталогов. Если передана строка, она разбирается как восьмеричное целое число. Если значение не указано, используется 0o777.

callback: NoParamCallback

Возвращаемый тип

void

Перегрузка 3

mkdir(
path: PathLike,
options:
Mode
| MakeDirectoryOptions
| null
| undefined
,
callback: (
err: ErrnoException | null,
path?: string,
) => void
,
): void

Асинхронный mkdir(2) — создание каталога.

Параметры

path: PathLike

Путь к файлу. Если указан URL, он должен использовать протокол file:.

options:
Mode
| MakeDirectoryOptions
| null
| undefined

Режим доступа к файлу или объект, в котором можно указать режим доступа к файлу и необходимость создания родительских каталогов. Если передана строка, она разбирается как восьмеричное целое число. Если значение не указано, используется 0o777.

callback: (
err: ErrnoException | null,
path?: string,
) => void

Возвращаемый тип

void

Перегрузка 4

mkdir(
path: PathLike,
callback: NoParamCallback,
): void

Асинхронный mkdir(2) — создание каталога с режимом 0o777.

Параметры

path: PathLike

Путь к файлу. Если указан URL, он должен использовать протокол file:.

callback: NoParamCallback

Возвращаемый тип

void

функция mkdirSync

Использование в Deno

import { mkdirSync } from "node:fs";

Перегрузка 1

mkdirSync(
path: PathLike,
options: MakeDirectoryOptions & { recursive: true; },
): string | undefined

Синхронно создаёт каталог. Возвращает undefined или, если recursive — true, путь к первому созданному каталогу. Это синхронная версия mkdir.

Дополнительные сведения см. в документации POSIX mkdir(2).

Параметры

path: PathLike
options: MakeDirectoryOptions & { recursive: true; }

Возвращаемый тип

string | undefined

Перегрузка 2

mkdirSync(
path: PathLike,
options?:
Mode
| (MakeDirectoryOptions & { recursive?: false | undefined; })
| null
,
): void

Синхронный mkdir(2) — создание каталога.

Параметры

path: PathLike

Путь к файлу. Если указан URL, он должен использовать протокол file:.

options:
Mode
| (MakeDirectoryOptions & { recursive?: false | undefined; })
| null
необязательный

Режим доступа к файлу или объект, в котором можно указать режим доступа к файлу и необходимость создания родительских каталогов. Если передана строка, она разбирается как восьмеричное целое число. Если значение не указано, используется 0o777.

Возвращаемый тип

void

Перегрузка 3

mkdirSync(
path: PathLike,
options?:
Mode
| MakeDirectoryOptions
| null
,
): string | undefined

Синхронный mkdir(2) — создание каталога.

Параметры

path: PathLike

Путь к файлу. Если указан URL, он должен использовать протокол file:.

options:
Mode
| MakeDirectoryOptions
| null
необязательный

Режим доступа к файлу или объект, в котором можно указать режим доступа к файлу и необходимость создания родительских каталогов. Если передана строка, она разбирается как восьмеричное целое число. Если значение не указано, используется 0o777.

Возвращаемый тип

string | undefined

функция mkdtemp

Использование в Deno

import { mkdtemp } from "node:fs";

Перегрузка 1

mkdtemp(
prefix: string,
options: EncodingOption,
callback: (
err: ErrnoException | null,
folder: string,
) => void
,
): void

Создаёт уникальный временный каталог.

Генерирует шесть случайных символов, которые добавляются после обязательного prefix, чтобы создать уникальный временный каталог. Из-за несогласованности поведения платформ избегайте завершающих символов X в prefix. Некоторые платформы, в частности BSD, могут возвращать более шести случайных символов и заменять завершающие символы X в prefix случайными символами.

Путь к созданному каталогу передаётся в виде строки во втором параметре обратного вызова.

Необязательный аргумент options может быть строкой, задающей кодировку, или объектом со свойством encoding, указывающим кодировку символов, которую следует использовать.

import { mkdtemp } from 'node:fs';
import { join } from 'node:path';
import { tmpdir } from 'node:os';

mkdtemp(join(tmpdir(), 'foo-'), (err, directory) => {
  if (err) throw err;
  console.log(directory);
  // Prints: /tmp/foo-itXde2 or C:\Users\...\AppData\Local\Temp\foo-itXde2
});

Метод fs.mkdtemp() добавляет шесть случайно выбранных символов непосредственно к строке prefix. Например, если указан каталог /tmp и требуется создать временный каталог внутри/tmp, строка prefix должна заканчиваться разделителем пути, специфичным для платформы (import { sep } from 'node:path').

import { tmpdir } from 'node:os';
import { mkdtemp } from 'node:fs';

// The parent directory for the new temporary directory
const tmpDir = tmpdir();

// This method is *INCORRECT*:
mkdtemp(tmpDir, (err, directory) => {
  if (err) throw err;
  console.log(directory);
  // Will print something similar to `/tmpabc123`.
  // A new temporary directory is created at the file system root
  // rather than *within* the /tmp directory.
});

// This method is *CORRECT*:
import { sep } from 'node:path';
mkdtemp(`${tmpDir}${sep}`, (err, directory) => {
  if (err) throw err;
  console.log(directory);
  // Will print something similar to `/tmp/abc123`.
  // A new temporary directory is created within
  // the /tmp directory.
});

Параметры

prefix: string
options: EncodingOption
callback: (
err: ErrnoException | null,
folder: string,
) => void

Тип возвращаемого значения

void

Перегрузка 2

mkdtemp(
prefix: string,
options: "buffer" | { encoding: "buffer"; },
callback: (
err: ErrnoException | null,
folder: Buffer,
) => void
,
): void

Асинхронно создаёт уникальный временный каталог. Генерирует шесть случайных символов, которые добавляются после обязательного префикса, чтобы создать уникальный временный каталог.

Параметры

prefix: string
options: "buffer" | { encoding: "buffer"; }

Кодировка (или объект, задающий кодировку), используемая для результата. Если она не указана, используется 'utf8'.

callback: (
err: ErrnoException | null,
folder: Buffer,
) => void

Тип возвращаемого значения

void

Перегрузка 3

mkdtemp(
prefix: string,
options: EncodingOption,
callback: (
err: ErrnoException | null,
folder: string | Buffer,
) => void
,
): void

Асинхронно создаёт уникальный временный каталог. Генерирует шесть случайных символов, которые добавляются после обязательного префикса, чтобы создать уникальный временный каталог.

Параметры

prefix: string
options: EncodingOption

Кодировка (или объект, задающий кодировку), используемая для результата. Если она не указана, используется 'utf8'.

callback: (
err: ErrnoException | null,
folder: string | Buffer,
) => void

Тип возвращаемого значения

void

Перегрузка 4

mkdtemp(
prefix: string,
callback: (
err: ErrnoException | null,
folder: string,
) => void
,
): void

Асинхронно создаёт уникальный временный каталог. Генерирует шесть случайных символов, которые добавляются после обязательного префикса, чтобы создать уникальный временный каталог.

Параметры

prefix: string
callback: (
err: ErrnoException | null,
folder: string,
) => void

Тип возвращаемого значения

void

функция mkdtempSync

Использование в Deno

import { mkdtempSync } from "node:fs";

Перегрузка 1

mkdtempSync(
prefix: string,
options?: EncodingOption,
): string

Возвращает путь к созданному каталогу.

Подробную информацию см. в документации по асинхронной версии этого API: mkdtemp.

Необязательный аргумент options может быть строкой, задающей кодировку, или объектом со свойством encoding, указывающим кодировку символов, которую следует использовать.

Параметры

prefix: string
options: EncodingOption
необязательный

Тип возвращаемого значения

string

Перегрузка 2

mkdtempSync(
prefix: string,
options: BufferEncodingOption,
): Buffer

Синхронно создаёт уникальный временный каталог. Генерирует шесть случайных символов, которые добавляются после обязательного префикса, чтобы создать уникальный временный каталог.

Параметры

prefix: string
options: BufferEncodingOption

Кодировка (или объект, задающий кодировку), используемая для результата. Если она не указана, используется 'utf8'.

Тип возвращаемого значения

Buffer

Перегрузка 3

mkdtempSync(
prefix: string,
options?: EncodingOption,
): string | Buffer

Синхронно создаёт уникальный временный каталог. Генерирует шесть случайных символов, которые добавляются после обязательного префикса, чтобы создать уникальный временный каталог.

Параметры

prefix: string
options: EncodingOption
необязательный

Кодировка (или объект, задающий кодировку), используемая для результата. Если она не указана, используется 'utf8'.

Тип возвращаемого значения

string | Buffer

функция open

Использование в Deno

import { open } from "node:fs";

Перегрузка 1

open(
path: PathLike,
flags: OpenMode | undefined,
mode:
Mode
| undefined
| null
,
callback: (
err: ErrnoException | null,
fd: number,
) => void
,
): void

Асинхронное открытие файла. Подробнее см. документацию POSIX open(2).

mode задаёт режим файла (права доступа и sticky-биты), но только если файл был создан. В Windows можно изменять только право на запись; см. chmod.

Обратный вызов получает два аргумента (err, fd).

Некоторые символы (< > : " / \ | ? *) зарезервированы в Windows, как описано в разделе Имена файлов, пути и пространства имён. В NTFS, если имя файла содержит двоеточие, Node.js откроет поток файловой системы, как описано на этой странице MSDN.

Такое же поведение наблюдается и у функций, основанных на fs.open(): fs.writeFile(), fs.readFile() и т. д.

Параметры

path: PathLike
flags: OpenMode | undefined = 'r'
необязательный

См. support of file system flags``.

mode:
Mode
| undefined
| null
= 0o666
необязательный
callback: (
err: ErrnoException | null,
fd: number,
) => void

Тип возвращаемого значения

void

Перегрузка 2

open(
path: PathLike,
flags: OpenMode | undefined,
callback: (
err: ErrnoException | null,
fd: number,
) => void
,
): void

Асинхронный вызов open(2) — открывает файл и при необходимости создаёт его. Если файл создан, его режим будет 0o666.

Параметры

path: PathLike

Путь к файлу. Если указан URL, он должен использовать протокол file:.

flags: OpenMode | undefined = 'r'
необязательный

См. support of file system flags``.

callback: (
err: ErrnoException | null,
fd: number,
) => void

Тип возвращаемого значения

void

Перегрузка 3

open(
path: PathLike,
callback: (
err: ErrnoException | null,
fd: number,
) => void
,
): void

Асинхронный вызов open(2) — открывает файл и при необходимости создаёт его. Если файл создан, его режим будет 0o666.

Параметры

path: PathLike

Путь к файлу. Если указан URL, он должен использовать протокол file:.

callback: (
err: ErrnoException | null,
fd: number,
) => void

Тип возвращаемого значения

void

функция openAsBlob

нестабильный

Использование в Deno

import { openAsBlob } from "node:fs";
openAsBlob(
path: PathLike,
options?: OpenAsBlobOptions,
): Promise<Blob>

Возвращает Blob, данные которого хранятся в указанном файле.

После создания Blob файл нельзя изменять. Любые изменения приведут к ошибке DOMException при чтении данных Blob. При создании Blob и перед каждым чтением выполняются синхронные операции stat с файлом, чтобы определить, были ли изменены данные файла на диске.

import { openAsBlob } from 'node:fs';

const blob = await openAsBlob('the.file.txt');
const ab = await blob.arrayBuffer();
blob.stream();

Параметры

path: PathLike
options: OpenAsBlobOptions
необязательный

Тип возвращаемого значения

Promise<Blob>

функция opendir

Использование в Deno

import { opendir } from "node:fs";

Перегрузка 1

opendir(
path: PathLike,
cb: (
err: ErrnoException | null,
dir: Dir,
) => void
,
): void

Асинхронно открывает каталог. Подробнее см. документацию POSIX opendir(3).

Создаёт fs.Dir, содержащий все дополнительные функции для чтения содержимого каталога и очистки ресурсов.

Параметр encoding задаёт кодировку для path при открытии каталога и последующих операциях чтения.

Параметры

path: PathLike
cb: (
err: ErrnoException | null,
dir: Dir,
) => void

Тип возвращаемого значения

void

Перегрузка 2

opendir(
path: PathLike,
options: OpenDirOptions,
cb: (
err: ErrnoException | null,
dir: Dir,
) => void
,
): void

Параметры

path: PathLike
options: OpenDirOptions
cb: (
err: ErrnoException | null,
dir: Dir,
) => void

Тип возвращаемого значения

void

функция opendirSync

Использование в Deno

import { opendirSync } from "node:fs";
opendirSync(
path: PathLike,
options?: OpenDirOptions,
): Dir

Синхронно открывает каталог. См. opendir(3).

Создаёт fs.Dir, содержащий все дополнительные функции для чтения содержимого каталога и очистки ресурсов.

Параметр encoding задаёт кодировку для path при открытии каталога и последующих операциях чтения.

Параметры

path: PathLike
options: OpenDirOptions
необязательный

Тип возвращаемого значения

Dir

функция openSync

Использование в Deno

import { openSync } from "node:fs";
openSync(
path: PathLike,
flags: OpenMode,
mode?: Mode | null,
): number

Возвращает целое число, представляющее дескриптор файла.

Подробную информацию см. в документации по асинхронной версии этого API: open.

Параметры

path: PathLike
flags: OpenMode = 'r'
необязательный
mode: Mode | null = 0o666
необязательный

Тип возвращаемого значения

number

функция promises.access

Использование в Deno

import { promises } from "node:fs";
const { access } = promises;
access(
path: PathLike,
mode?: number,
): Promise<void>

Проверяет разрешения пользователя для файла или каталога, указанного в path. Аргумент mode — необязательное целое число, указывающее, какие проверки доступности следует выполнить. Значением mode должно быть либо fs.constants.F_OK, либо маска, составленная из побитового ИЛИ любых значений из fs.constants.R_OK, fs.constants.W_OK и fs.constants.X_OK (например, fs.constants.W_OK | fs.constants.R_OK). Возможные значения mode см. в File access constants.

Если проверка доступности выполнена успешно, промис разрешается без значения. Если какая-либо из проверок доступности завершается неудачей, промис отклоняется с объектом Error. В следующем примере проверяется, можно ли прочитать файл /etc/passwd и записать в него данные текущему процессу.

import { access, constants } from 'node:fs/promises';

try {
  await access('/etc/passwd', constants.R_OK | constants.W_OK);
  console.log('can access');
} catch {
  console.error('cannot access');
}

Не рекомендуется использовать fsPromises.access() для проверки доступности файла перед вызовом fsPromises.open(). Это приводит к состоянию гонки, поскольку другие процессы могут изменить состояние файла между двумя вызовами. Вместо этого пользовательский код должен напрямую открывать, читать или записывать файл и обрабатывать ошибку, возникающую при отсутствии доступа к файлу.

Параметры

path: PathLike
mode: number = fs.constants.F_OK
необязательный

Тип возвращаемого значения

Promise<void>

При успешном выполнении разрешается со значением undefined.


функция promises.appendFile

Использование в Deno

import { promises } from "node:fs";
const { appendFile } = promises;
appendFile(
path: PathLike | FileHandle,
data: string | Uint8Array,
options?:
(
ObjectEncodingOptions
& FlagAndOpenMode
& { flush?: boolean | undefined; }
)

| BufferEncoding
| null
,
): Promise<void>

Асинхронно добавляет данные в файл, создавая его, если он ещё не существует. data может быть строкой или Buffer.

Если options — строка, она задаёт encoding.

Параметр mode влияет только на вновь созданный файл. Подробнее см. fs.open().

В качестве path можно указать FileHandle, открытый для добавления данных (с помощью fsPromises.open()).

Параметры

path: PathLike | FileHandle

имя файла или {FileHandle}

data: string | Uint8Array
options:
(
ObjectEncodingOptions
& FlagAndOpenMode
& { flush?: boolean | undefined; }
)

| BufferEncoding
| null
необязательный

Тип возвращаемого значения

Promise<void>

При успешном выполнении разрешается со значением undefined.


функция promises.chmod

Использование в Deno

import { promises } from "node:fs";
const { chmod } = promises;
chmod(
path: PathLike,
mode: Mode,
): Promise<void>

Изменяет права доступа к файлу.

Параметры

path: PathLike
mode: Mode

Тип возвращаемого значения

Promise<void>

При успешном выполнении разрешается со значением undefined.


функция promises.chown

Использование в Deno

import { promises } from "node:fs";
const { chown } = promises;
chown(
path: PathLike,
uid: number,
gid: number,
): Promise<void>

Изменяет владельца файла.

Параметры

path: PathLike
uid: number
gid: number

Тип возвращаемого значения

Promise<void>

При успешном выполнении разрешается со значением undefined.


функция promises.copyFile

Использование в Deno

import { promises } from "node:fs";
const { copyFile } = promises;
copyFile(
src: PathLike,
dest: PathLike,
mode?: number,
): Promise<void>

Асинхронно копирует src в dest. По умолчанию dest перезаписывается, если уже существует.

Атомарность операции копирования не гарантируется. Если ошибка возникает после открытия файла назначения для записи, предпринимается попытка удалить файл назначения.

import { copyFile, constants } from 'node:fs/promises';

try {
  await copyFile('source.txt', 'destination.txt');
  console.log('source.txt was copied to destination.txt');
} catch {
  console.error('The file could not be copied');
}

// By using COPYFILE_EXCL, the operation will fail if destination.txt exists.
try {
  await copyFile('source.txt', 'destination.txt', constants.COPYFILE_EXCL);
  console.log('source.txt was copied to destination.txt');
} catch {
  console.error('The file could not be copied');
}

Параметры

src: PathLike

имя исходного файла для копирования

dest: PathLike

имя файла назначения для операции копирования

mode: number = 0
необязательный

Необязательные модификаторы, определяющие поведение операции копирования. Можно создать маску из двух или более значений, объединив их побитовым ИЛИ (например, fs.constants.COPYFILE_EXCL | fs.constants.COPYFILE_FICLONE).

Тип возвращаемого значения

Promise<void>

При успешном выполнении разрешается со значением undefined.


функция promises.cp

нестабильный

Использование в Deno

import { promises } from "node:fs";
const { cp } = promises;
cp(
source: string | URL,
destination: string | URL,
opts?: CopyOptions,
): Promise<void>

Асинхронно копирует всю структуру каталогов из src в dest, включая подкаталоги и файлы.

При копировании каталога в другой каталог шаблоны glob не поддерживаются, а поведение аналогично cp dir1/ dir2/.

Параметры

source: string | URL
destination: string | URL
opts: CopyOptions
необязательный

Тип возвращаемого значения

Promise<void>

При успешном выполнении разрешается со значением undefined.


функция promises.glob

Использование в Deno

import { promises } from "node:fs";
const { glob } = promises;

Перегрузка 1

glob(pattern: string | string[]): AsyncIterator<string>

Получает файлы, соответствующие указанному шаблону.

Параметры

pattern: string | string[]

Тип возвращаемого значения

AsyncIterator<string>

Перегрузка 2

glob(
pattern: string | string[],
opt: GlobOptionsWithFileTypes,
): AsyncIterator<Dirent>

Параметры

pattern: string | string[]
opt: GlobOptionsWithFileTypes

Тип возвращаемого значения

AsyncIterator<Dirent>

Перегрузка 3

glob(
pattern: string | string[],
opt: GlobOptionsWithoutFileTypes,
): AsyncIterator<string>

Параметры

pattern: string | string[]
opt: GlobOptionsWithoutFileTypes

Тип возвращаемого значения

AsyncIterator<string>

Перегрузка 4

glob(
pattern: string | string[],
opt: GlobOptions,
): AsyncIterator<Dirent | string>

Параметры

pattern: string | string[]
opt: GlobOptions

Тип возвращаемого значения

AsyncIterator<Dirent | string>

функция promises.lchown

Использование в Deno

import { promises } from "node:fs";
const { lchown } = promises;
lchown(
path: PathLike,
uid: number,
gid: number,
): Promise<void>

Изменяет владельца символической ссылки.

Параметры

path: PathLike
uid: number
gid: number

Тип возвращаемого значения

Promise<void>

При успешном выполнении разрешается со значением undefined.


функция promises.link

Использование в Deno

import { promises } from "node:fs";
const { link } = promises;
link(
existingPath: PathLike,
newPath: PathLike,
): Promise<void>

Создаёт новую ссылку с existingPath на newPath. Подробнее см. документацию POSIX link(2).

Параметры

existingPath: PathLike
newPath: PathLike

Тип возвращаемого значения

Promise<void>

При успешном выполнении разрешается со значением undefined.


функция promises.lstat

Использование в Deno

import { promises } from "node:fs";
const { lstat } = promises;

Перегрузка 1

lstat(
path: PathLike,
opts?: StatOptions & { bigint?: false | undefined; },
): Promise<Stats>

Эквивалентно fsPromises.stat(), за исключением случая, когда path указывает на символическую ссылку: тогда информация о состоянии получается для самой ссылки, а не для файла, на который она указывает. Подробнее см. документ POSIX lstat(2).

Параметры

path: PathLike
opts: StatOptions & { bigint?: false | undefined; }
необязательный

Тип возвращаемого значения

Promise<Stats>

Разрешается объектом {fs.Stats} для указанной символической ссылки path.

Перегрузка 2

lstat(
path: PathLike,
opts: StatOptions & { bigint: true; },
): Promise<BigIntStats>

Параметры

path: PathLike
opts: StatOptions & { bigint: true; }

Тип возвращаемого значения

Promise<BigIntStats>

Перегрузка 3

lstat(
path: PathLike,
opts?: StatOptions,
): Promise<Stats | BigIntStats>

Параметры

path: PathLike
opts: StatOptions
необязательный

Тип возвращаемого значения

Promise<Stats | BigIntStats>

функция promises.lutimes

Использование в Deno

import { promises } from "node:fs";
const { lutimes } = promises;
lutimes(
path: PathLike,
atime: TimeLike,
mtime: TimeLike,
): Promise<void>

Изменяет время доступа и модификации файла так же, как fsPromises.utimes(), но если путь указывает на символическую ссылку, она не разыменовывается: вместо этого изменяются временные метки самой символической ссылки.

Параметры

path: PathLike
atime: TimeLike
mtime: TimeLike

Тип возвращаемого значения

Promise<void>

При успешном выполнении разрешается со значением undefined.


функция promises.mkdir

Использование в Deno

import { promises } from "node:fs";
const { mkdir } = promises;

Перегрузка 1

mkdir(
path: PathLike,
options: MakeDirectoryOptions & { recursive: true; },
): Promise<string | undefined>

Асинхронно создаёт каталог.

Необязательный аргумент options может быть целым числом, задающим mode (права доступа и sticky-биты), или объектом со свойством mode и свойством recursive, указывающим, следует ли создавать родительские каталоги. Вызов fsPromises.mkdir(), когда path является существующим каталогом, приводит к отклонению только в том случае, если recursive имеет значение false.

import { mkdir } from 'node:fs/promises';

try {
  const projectFolder = new URL('./test/project/', import.meta.url);
  const createDir = await mkdir(projectFolder, { recursive: true });

  console.log(`created ${createDir}`);
} catch (err) {
  console.error(err.message);
}

Параметры

path: PathLike
options: MakeDirectoryOptions & { recursive: true; }

Тип возвращаемого значения

Promise<string | undefined>

В случае успеха выполняется с undefined, если recursive имеет значение false, или с путём первого созданного каталога, если recursive имеет значение true.

Перегрузка 2

mkdir(
path: PathLike,
options?:
Mode
| (MakeDirectoryOptions & { recursive?: false | undefined; })
| null
,
): Promise<void>

Асинхронный mkdir(2) — создание каталога.

Параметры

path: PathLike

Путь к файлу. Если указан URL, он должен использовать протокол file:.

options:
Mode
| (MakeDirectoryOptions & { recursive?: false | undefined; })
| null
необязательный

Режим доступа к файлу или объект, в котором можно указать режим доступа к файлу и необходимость создания родительских каталогов. Если передана строка, она разбирается как восьмеричное целое число. Если значение не указано, используется 0o777.

Тип возвращаемого значения

Promise<void>

Перегрузка 3

mkdir(
path: PathLike,
options?:
Mode
| MakeDirectoryOptions
| null
,
): Promise<string | undefined>

Асинхронный mkdir(2) — создание каталога.

Параметры

path: PathLike

Путь к файлу. Если указан URL, он должен использовать протокол file:.

options:
Mode
| MakeDirectoryOptions
| null
необязательный

Режим доступа к файлу или объект, в котором можно указать режим доступа к файлу и необходимость создания родительских каталогов. Если передана строка, она разбирается как восьмеричное целое число. Если значение не указано, используется 0o777.

Тип возвращаемого значения

Promise<string | undefined>

функция promises.mkdtemp

Использование в Deno

import { promises } from "node:fs";
const { mkdtemp } = promises;

Перегрузка 1

mkdtemp(
prefix: string,
options?:
ObjectEncodingOptions
| BufferEncoding
| null
,
): Promise<string>

Создаёт уникальный временный каталог. Уникальное имя каталога формируется добавлением шести случайных символов в конец указанного prefix. Из-за различий между платформами не используйте завершающие символы X в prefix. Некоторые платформы, в частности BSD, могут возвращать более шести случайных символов и заменять завершающие символы X в prefix случайными символами.

Необязательный аргумент options может быть строкой, задающей кодировку, или объектом со свойством encoding, указывающим используемую кодировку символов.

import { mkdtemp } from 'node:fs/promises';
import { join } from 'node:path';
import { tmpdir } from 'node:os';

try {
  await mkdtemp(join(tmpdir(), 'foo-'));
} catch (err) {
  console.error(err);
}

Метод fsPromises.mkdtemp() добавит шесть случайно выбранных символов непосредственно к строке prefix. Например, если задан каталог /tmp, то для создания временного каталога внутри /tmp строка prefix должна заканчиваться разделителем пути, соответствующим платформе (import { sep } from 'node:path').

Параметры

prefix: string
options:
ObjectEncodingOptions
| BufferEncoding
| null
необязательный

Тип возвращаемого значения

Promise<string>

Выполняется со строкой, содержащей путь в файловой системе к созданному временному каталогу.

Перегрузка 2

mkdtemp(
prefix: string,
options: BufferEncodingOption,
): Promise<Buffer>

Асинхронно создаёт уникальный временный каталог. Генерирует шесть случайных символов, которые добавляются после обязательного prefix для создания уникального временного каталога.

Параметры

prefix: string
options: BufferEncodingOption

Кодировка (или объект, задающий кодировку), используемая для кодирования результата. Если значение не указано, используется 'utf8'.

Тип возвращаемого значения

Promise<Buffer>

Перегрузка 3

mkdtemp(
prefix: string,
options?:
ObjectEncodingOptions
| BufferEncoding
| null
,
): Promise<string | Buffer>

Асинхронно создаёт уникальный временный каталог. Генерирует шесть случайных символов, которые добавляются после обязательного prefix для создания уникального временного каталога.

Параметры

prefix: string
options:
ObjectEncodingOptions
| BufferEncoding
| null
необязательный

Кодировка (или объект, задающий кодировку), используемая для кодирования результата. Если значение не указано, используется 'utf8'.

Тип возвращаемого значения

Promise<string | Buffer>

функция promises.open

Использование в Deno

import { promises } from "node:fs";
const { open } = promises;
open(
path: PathLike,
flags?: string | number,
mode?: Mode,
): Promise<FileHandle>

Открывает FileHandle.

Дополнительные сведения см. в документации POSIX open(2).

Некоторые символы (< > : " / \ | ? *) зарезервированы в Windows, как указано в документации «Имена файлов, пути и пространства имён». В NTFS, если имя файла содержит двоеточие, Node.js откроет поток файловой системы, как описано на этой странице MSDN.

Параметры

path: PathLike
flags: string | number = 'r'
необязательный

См. support of file system flags``.

mode: Mode = 0o666
необязательный

Задаёт режим доступа к файлу (права доступа и sticky-биты), если файл создаётся.

Тип возвращаемого значения

Promise<FileHandle>

Выполняется с объектом {FileHandle}.


функция promises.opendir

Использование в Deno

import { promises } from "node:fs";
const { opendir } = promises;
opendir(
path: PathLike,
options?: OpenDirOptions,
): Promise<Dir>

Асинхронно открывает каталог для последовательного сканирования. Дополнительные сведения см. в документации POSIX opendir(3).

Создаёт fs.Dir, содержащий все дальнейшие функции для чтения каталога и очистки ресурсов.

Параметр encoding задаёт кодировку для path при открытии каталога и последующих операциях чтения.

Пример асинхронного перебора:

import { opendir } from 'node:fs/promises';

try {
  const dir = await opendir('./');
  for await (const dirent of dir)
    console.log(dirent.name);
} catch (err) {
  console.error(err);
}

При использовании асинхронного итератора объект fs.Dir будет автоматически закрыт после завершения итератора.

Параметры

path: PathLike
options: OpenDirOptions
необязательный

Тип возвращаемого значения

Promise<Dir>

Выполняется с объектом {fs.Dir}.


функция promises.readdir

Использование в Deno

import { promises } from "node:fs";
const { readdir } = promises;

Перегрузка 1

readdir(
path: PathLike,
options?:
(ObjectEncodingOptions & { withFileTypes?: false | undefined; recursive?: boolean | undefined; })
| BufferEncoding
| null
,
): Promise<string[]>

Читает содержимое каталога.

Необязательный аргумент options может быть строкой, задающей кодировку, или объектом со свойством encoding, указывающим используемую кодировку символов для имён файлов. Если для encoding задано значение 'buffer', возвращаемые имена файлов будут представлены объектами Buffer.

Если для options.withFileTypes задано значение true, возвращённый массив будет содержать объекты fs.Dirent.

import { readdir } from 'node:fs/promises';

try {
  const files = await readdir(path);
  for (const file of files)
    console.log(file);
} catch (err) {
  console.error(err);
}

Параметры

path: PathLike
options:
(ObjectEncodingOptions & { withFileTypes?: false | undefined; recursive?: boolean | undefined; })
| BufferEncoding
| null
необязательный

Тип возвращаемого значения

Promise<string[]>

Выполняется с массивом имён файлов в каталоге, за исключением '.' и '..'.

Перегрузка 2

readdir(
path: PathLike,
options: { encoding: "buffer"; withFileTypes?: false | undefined; recursive?: boolean | undefined; } | "buffer",
): Promise<Buffer[]>

Асинхронный readdir(3) — чтение каталога.

Параметры

path: PathLike

Путь к файлу. Если указан URL, он должен использовать протокол file:.

options: { encoding: "buffer"; withFileTypes?: false | undefined; recursive?: boolean | undefined; } | "buffer"

Кодировка (или объект, задающий кодировку), используемая для кодирования результата. Если значение не указано, используется 'utf8'.

Тип возвращаемого значения

Promise<Buffer[]>

Перегрузка 3

readdir(
path: PathLike,
options?:
(ObjectEncodingOptions & { withFileTypes?: false | undefined; recursive?: boolean | undefined; })
| BufferEncoding
| null
,
): Promise<string[] | Buffer[]>

Асинхронный readdir(3) — чтение каталога.

Параметры

path: PathLike

Путь к файлу. Если указан URL, он должен использовать протокол file:.

options:
(ObjectEncodingOptions & { withFileTypes?: false | undefined; recursive?: boolean | undefined; })
| BufferEncoding
| null
необязательный

Кодировка (или объект, задающий кодировку), используемая для кодирования результата. Если значение не указано, используется 'utf8'.

Тип возвращаемого значения

Promise<string[] | Buffer[]>

Перегрузка 4

readdir(
path: PathLike,
options: ObjectEncodingOptions & { withFileTypes: true; recursive?: boolean | undefined; },
): Promise<Dirent[]>

Асинхронный readdir(3) — чтение каталога.

Параметры

path: PathLike

Путь к файлу. Если указан URL, он должен использовать протокол file:.

options: ObjectEncodingOptions & { withFileTypes: true; recursive?: boolean | undefined; }

Если вызов выполнен с withFileTypes: true, результатом будет массив объектов Dirent.

Тип возвращаемого значения

Promise<Dirent[]>

функция promises.readFile

Использование в Deno

import { promises } from "node:fs";
const { readFile } = promises;

Перегрузка 1

readFile(
path: PathLike | FileHandle,
options?: ({ encoding?: null | undefined; flag?: OpenMode | undefined; } & Abortable) | null,
): Promise<Buffer>

Асинхронно считывает всё содержимое файла.

Если кодировка не указана (с помощью options.encoding), данные возвращаются как объект Buffer. В противном случае данные будут представлены в виде строки.

Если options — это строка, она задаёт кодировку.

Если path является каталогом, поведение fsPromises.readFile() зависит от платформы. В macOS, Linux и Windows промис будет отклонён с ошибкой. Во FreeBSD будет возвращено представление содержимого каталога.

Пример чтения файла package.json, расположенного в том же каталоге, что и выполняемый код:

import { readFile } from 'node:fs/promises';
try {
  const filePath = new URL('./package.json', import.meta.url);
  const contents = await readFile(filePath, { encoding: 'utf8' });
  console.log(contents);
} catch (err) {
  console.error(err.message);
}

Текущий запрос readFile можно прервать с помощью AbortSignal. Если запрос прерван, возвращённый промис отклоняется с ошибкой AbortError:

import { readFile } from 'node:fs/promises';

try {
  const controller = new AbortController();
  const { signal } = controller;
  const promise = readFile(fileName, { signal });

  // Abort the request before the promise settles.
  controller.abort();

  await promise;
} catch (err) {
  // When a request is aborted - err is an AbortError
  console.error(err);
}

Прерывание текущего запроса не прерывает отдельные запросы операционной системы, а отменяет внутреннюю буферизацию, которую выполняет fs.readFile.

Указанный FileHandle должен поддерживать чтение.

Параметры

path: PathLike | FileHandle

имя файла или FileHandle

options: ({ encoding?: null | undefined; flag?: OpenMode | undefined; } & Abortable) | null
необязательный

Тип возвращаемого значения

Promise<Buffer>

Выполняется с содержимым файла.

Перегрузка 2

readFile(
path: PathLike | FileHandle,
options: ({ encoding: BufferEncoding; flag?: OpenMode | undefined; } & Abortable) | BufferEncoding,
): Promise<string>

Асинхронно считывает всё содержимое файла.

Параметры

path: PathLike | FileHandle

Путь к файлу. Если указан URL, он должен использовать протокол file:. Если указан FileHandle, базовый файл не будет закрыт автоматически.

options: ({ encoding: BufferEncoding; flag?: OpenMode | undefined; } & Abortable) | BufferEncoding

Объект, который может содержать необязательный флаг. Если флаг не указан, по умолчанию используется 'r'.

Тип возвращаемого значения

Promise<string>

Перегрузка 3

readFile(
path: PathLike | FileHandle,
options?:
(
ObjectEncodingOptions
& Abortable
& { flag?: OpenMode | undefined; }
)

| BufferEncoding
| null
,
): Promise<string | Buffer>

Асинхронно считывает всё содержимое файла.

Параметры

path: PathLike | FileHandle

Путь к файлу. Если указан URL, он должен использовать протокол file:. Если указан FileHandle, базовый файл не будет закрыт автоматически.

options:
(
ObjectEncodingOptions
& Abortable
& { flag?: OpenMode | undefined; }
)

| BufferEncoding
| null
необязательный

Объект, который может содержать необязательный флаг. Если флаг не указан, по умолчанию используется 'r'.

Тип возвращаемого значения

Promise<string | Buffer>

функция promises.readlink

Использование в Deno

import { promises } from "node:fs";
const { readlink } = promises;

Перегрузка 1

readlink(
path: PathLike,
options?:
ObjectEncodingOptions
| BufferEncoding
| null
,
): Promise<string>

Считывает содержимое символической ссылки, на которую указывает path. Подробнее см. документацию POSIX readlink(2). В случае успеха промис выполняется со значением linkString.

Необязательный аргумент options может быть строкой, задающей кодировку, или объектом со свойством encoding, указывающим кодировку символов для возвращаемого пути ссылки. Если для encoding задано значение 'buffer', возвращаемый путь ссылки будет передан в виде объекта Buffer.

Параметры

path: PathLike
options:
ObjectEncodingOptions
| BufferEncoding
| null
необязательный

Тип возвращаемого значения

Promise<string>

В случае успеха выполняется со значением linkString.

Перегрузка 2

readlink(
path: PathLike,
options: BufferEncodingOption,
): Promise<Buffer>

Асинхронный readlink(2) — чтение значения символической ссылки.

Параметры

path: PathLike

Путь к файлу. Если указан URL, он должен использовать протокол file:.

options: BufferEncodingOption

Кодировка (или объект, задающий кодировку), используемая для результата. Если не указана, используется 'utf8'.

Тип возвращаемого значения

Promise<Buffer>

Перегрузка 3

readlink(
path: PathLike,
options?:
ObjectEncodingOptions
| string
| null
,
): Promise<string | Buffer>

Асинхронный readlink(2) — чтение значения символической ссылки.

Параметры

path: PathLike

Путь к файлу. Если указан URL, он должен использовать протокол file:.

options:
ObjectEncodingOptions
| string
| null
необязательный

Кодировка (или объект, задающий кодировку), используемая для результата. Если не указана, используется 'utf8'.

Тип возвращаемого значения

Promise<string | Buffer>

функция promises.realpath

Использование в Deno

import { promises } from "node:fs";
const { realpath } = promises;

Перегрузка 1

realpath(
path: PathLike,
options?:
ObjectEncodingOptions
| BufferEncoding
| null
,
): Promise<string>

Определяет фактическое расположение path, используя ту же семантику, что и функция fs.realpath.native().

Поддерживаются только пути, которые можно преобразовать в строки UTF8.

Необязательный аргумент options может быть строкой, задающей кодировку, или объектом со свойством encoding, указывающим кодировку символов для пути. Если для encoding задано значение 'buffer', возвращаемый путь будет передан в виде объекта Buffer.

В Linux, если Node.js скомпонован с musl libc, для работы этой функции файловая система procfs должна быть смонтирована в /proc. Для Glibc такого ограничения нет.

Параметры

path: PathLike
options:
ObjectEncodingOptions
| BufferEncoding
| null
необязательный

Тип возвращаемого значения

Promise<string>

В случае успеха выполняется с разрешённым путём.

Перегрузка 2

realpath(
path: PathLike,
options: BufferEncodingOption,
): Promise<Buffer>

Асинхронный realpath(3) — возврат канонического абсолютного пути.

Параметры

path: PathLike

Путь к файлу. Если указан URL, он должен использовать протокол file:.

options: BufferEncodingOption

Кодировка (или объект, задающий кодировку), используемая для результата. Если не указана, используется 'utf8'.

Тип возвращаемого значения

Promise<Buffer>

Перегрузка 3

realpath(
path: PathLike,
options?:
ObjectEncodingOptions
| BufferEncoding
| null
,
): Promise<string | Buffer>

Асинхронный realpath(3) — возврат канонического абсолютного пути.

Параметры

path: PathLike

Путь к файлу. Если указан URL, он должен использовать протокол file:.

options:
ObjectEncodingOptions
| BufferEncoding
| null
необязательный

Кодировка (или объект, задающий кодировку), используемая для результата. Если не указана, используется 'utf8'.

Тип возвращаемого значения

Promise<string | Buffer>

функция promises.rename

Использование в Deno

import { promises } from "node:fs";
const { rename } = promises;
rename(
oldPath: PathLike,
newPath: PathLike,
): Promise<void>

Переименовывает oldPath в newPath.

Параметры

oldPath: PathLike
newPath: PathLike

Тип возвращаемого значения

Promise<void>

В случае успеха выполняется со значением undefined.


функция promises.rm

Использование в Deno

import { promises } from "node:fs";
const { rm } = promises;
rm(
path: PathLike,
options?: RmOptions,
): Promise<void>

Удаляет файлы и каталоги (по образцу стандартной утилиты POSIX rm).

Параметры

path: PathLike
options: RmOptions
необязательный

Тип возвращаемого значения

Promise<void>

В случае успеха выполняется со значением undefined.


функция promises.rmdir

Использование в Deno

import { promises } from "node:fs";
const { rmdir } = promises;
rmdir(
path: PathLike,
options?: RmDirOptions,
): Promise<void>

Удаляет каталог, указанный в path.

Использование fsPromises.rmdir() для файла (не каталога) приводит к отклонению промиса с ошибкой ENOENT в Windows и ошибкой ENOTDIR в POSIX.

Чтобы получить поведение, аналогичное команде Unix rm -rf, используйте fsPromises.rm() с параметрами { recursive: true, force: true }.

Параметры

path: PathLike
options: RmDirOptions
необязательный

Тип возвращаемого значения

Promise<void>

В случае успеха выполняется со значением undefined.


функция promises.stat

Использование в Deno

import { promises } from "node:fs";
const { stat } = promises;

Перегрузка 1

stat(
path: PathLike,
opts?: StatOptions & { bigint?: false | undefined; },
): Promise<Stats>

Параметры

path: PathLike
opts: StatOptions & { bigint?: false | undefined; }
необязательный

Тип возвращаемого значения

Promise<Stats>

Выполняется с объектом {fs.Stats} для указанного path.

Перегрузка 2

stat(
path: PathLike,
opts: StatOptions & { bigint: true; },
): Promise<BigIntStats>

Параметры

path: PathLike
opts: StatOptions & { bigint: true; }

Тип возвращаемого значения

Promise<BigIntStats>

Перегрузка 3

stat(
path: PathLike,
opts?: StatOptions,
): Promise<Stats | BigIntStats>

Параметры

path: PathLike
opts: StatOptions
необязательный

Тип возвращаемого значения

Promise<Stats | BigIntStats>

функция promises.statfs

Использование в Deno

import { promises } from "node:fs";
const { statfs } = promises;

Перегрузка 1

statfs(
path: PathLike,
opts?: StatFsOptions & { bigint?: false | undefined; },
): Promise<StatsFs>

Параметры

path: PathLike
opts: StatFsOptions & { bigint?: false | undefined; }
необязательный

Тип возвращаемого значения

Promise<StatsFs>

В случае успеха возвращает объект {fs.StatFs} для указанного path.

Перегрузка 2

statfs(
path: PathLike,
opts: StatFsOptions & { bigint: true; },
): Promise<BigIntStatsFs>

Параметры

path: PathLike
opts: StatFsOptions & { bigint: true; }

Тип возвращаемого значения

Promise<BigIntStatsFs>

Перегрузка 3

statfs(
path: PathLike,
opts?: StatFsOptions,
): Promise<StatsFs | BigIntStatsFs>

Параметры

path: PathLike
opts: StatFsOptions
необязательный

Тип возвращаемого значения

Promise<StatsFs | BigIntStatsFs>

функция promises.symlink

Использование в Deno

import { promises } from "node:fs";
const { symlink } = promises;
symlink(
target: PathLike,
path: PathLike,
type?: string | null,
): Promise<void>

Создаёт символическую ссылку.

Аргумент type используется только на платформах Windows и может принимать одно из значений: 'dir', 'file' или 'junction'. Если аргумент type не является строкой, Node.js автоматически определит тип target и использует 'file' или 'dir'. Если target не существует, будет использовано 'file'. Для точек соединения Windows путь назначения должен быть абсолютным. При использовании 'junction' аргумент target будет автоматически преобразован в абсолютный путь. Точки соединения на томах NTFS могут указывать только на каталоги.

Параметры

target: PathLike
path: PathLike
type: string | null = 'null'
необязательный

Тип возвращаемого значения

Promise<void>

В случае успеха возвращает undefined.


функция promises.truncate

Использование в Deno

import { promises } from "node:fs";
const { truncate } = promises;
truncate(
path: PathLike,
len?: number,
): Promise<void>

Обрезает (уменьшает или увеличивает длину) содержимое в path до len байт.

Параметры

path: PathLike
len: number = 0
необязательный

Тип возвращаемого значения

Promise<void>

В случае успеха возвращает undefined.


функция promises.unlink

Использование в Deno

import { promises } from "node:fs";
const { unlink } = promises;
unlink(path: PathLike): Promise<void>

Если path указывает на символическую ссылку, ссылка удаляется, не затрагивая файл или каталог, на который она указывает. Если path указывает на путь к файлу, который не является символической ссылкой, файл удаляется. Подробнее см. в документации POSIX по функции unlink(2).

Параметры

path: PathLike

Тип возвращаемого значения

Promise<void>

В случае успеха возвращает undefined.


функция promises.utimes

Использование в Deno

import { promises } from "node:fs";
const { utimes } = promises;
utimes(
path: PathLike,
atime: TimeLike,
mtime: TimeLike,
): Promise<void>

Изменяет временные метки файловой системы объекта, на который указывает path.

Аргументы atime и mtime должны соответствовать следующим правилам:

  • Значения могут быть числами, обозначающими время эпохи Unix, объектами Date или числовыми строками, например '123456789.0'.
  • Если значение не удаётся преобразовать в число или оно является NaN, Infinity или -Infinity, будет выброшено исключение Error.

Параметры

path: PathLike
atime: TimeLike
mtime: TimeLike

Тип возвращаемого значения

Promise<void>

В случае успеха возвращает undefined.


функция promises.watch

Использование в Deno

import { promises } from "node:fs";
const { watch } = promises;

Перегрузка 1

watch(
filename: PathLike,
options: (WatchOptions & { encoding: "buffer"; }) | "buffer",
): AsyncIterable<FileChangeInfo<Buffer>>

Возвращает асинхронный итератор, отслеживающий изменения в filename, где filename — это файл или каталог.

import { watch } from 'node:fs/promises';

const ac = new AbortController();
const { signal } = ac;
setTimeout(() => ac.abort(), 10000);

(async () => {
  try {
    const watcher = watch(__filename, { signal });
    for await (const event of watcher)
      console.log(event);
  } catch (err) {
    if (err.name === 'AbortError')
      return;
    throw err;
  }
})();

На большинстве платформ 'rename' генерируется при появлении или исчезновении имени файла в каталоге.

Все caveats для fs.watch() также применимы к fsPromises.watch().

Параметры

filename: PathLike
options: (WatchOptions & { encoding: "buffer"; }) | "buffer"

Тип возвращаемого значения

AsyncIterable<FileChangeInfo<Buffer>>

объектов со следующими свойствами:

Перегрузка 2

watch(
filename: PathLike,
options?: WatchOptions | BufferEncoding,
): AsyncIterable<FileChangeInfo<string>>

Отслеживает изменения в filename, где filename — это файл или каталог, и возвращает FSWatcher.

Параметры

filename: PathLike

Путь к файлу или каталогу. Если указан URL, он должен использовать протокол file:.

options: WatchOptions | BufferEncoding
необязательный

Кодировка имени файла, передаваемого обработчику, или объект, в котором можно указать параметры encoding, persistent и recursive. Если encoding не задан, используется значение по умолчанию 'utf8'. Если persistent не задан, используется значение по умолчанию true. Если recursive не задан, используется значение по умолчанию false.

Тип возвращаемого значения

AsyncIterable<FileChangeInfo<string>>

Перегрузка 3

watch(
filename: PathLike,
options: WatchOptions | string,
): AsyncIterable<FileChangeInfo<string>> | AsyncIterable<FileChangeInfo<Buffer>>

Отслеживает изменения в filename, где filename — это файл или каталог, и возвращает FSWatcher.

Параметры

filename: PathLike

Путь к файлу или каталогу. Если указан URL, он должен использовать протокол file:.

options: WatchOptions | string

Кодировка имени файла, передаваемого обработчику, или объект, в котором можно указать параметры encoding, persistent и recursive. Если encoding не задан, используется значение по умолчанию 'utf8'. Если persistent не задан, используется значение по умолчанию true. Если recursive не задан, используется значение по умолчанию false.

Тип возвращаемого значения

AsyncIterable<FileChangeInfo<string>> | AsyncIterable<FileChangeInfo<Buffer>>

функция promises.writeFile

Использование в Deno

import { promises } from "node:fs";
const { writeFile } = promises;
writeFile(
file: PathLike | FileHandle,
data:
string
| ArrayBufferView
| Iterable<string | ArrayBufferView>
| AsyncIterable<string | ArrayBufferView>
| Stream
,
options?:
(
ObjectEncodingOptions
& { mode?: Mode | undefined; flag?: OpenMode | undefined; flush?: boolean | undefined; }
& Abortable
)

| BufferEncoding
| null
,
): Promise<void>

Асинхронно записывает данные в файл, заменяя его, если он уже существует. data может быть строкой, буфером, объектом AsyncIterable или объектом Iterable.

Параметр encoding игнорируется, если data является буфером.

Если options — строка, она задаёт кодировку.

Параметр mode влияет только на вновь созданный файл. Подробнее см. в fs.open().

Указанный FileHandle должен поддерживать запись.

Небезопасно вызывать fsPromises.writeFile() несколько раз для одного и того же файла, не дожидаясь завершения промиса.

Подобно fsPromises.readFile, fsPromises.writeFile — это вспомогательный метод, который для записи переданного ему буфера выполняет несколько вызовов write. В коде, чувствительном к производительности, рассмотрите возможность использования fs.createWriteStream() или filehandle.createWriteStream().

Для отмены fsPromises.writeFile() можно использовать AbortSignal. Отмена выполняется «по возможности», поэтому, вероятно, часть данных всё же будет записана.

import { writeFile } from 'node:fs/promises';
import { Buffer } from 'node:buffer';

try {
  const controller = new AbortController();
  const { signal } = controller;
  const data = new Uint8Array(Buffer.from('Hello Node.js'));
  const promise = writeFile('message.txt', data, { signal });

  // Abort the request before the promise settles.
  controller.abort();

  await promise;
} catch (err) {
  // When a request is aborted - err is an AbortError
  console.error(err);
}

Прерывание выполняющегося запроса не прерывает отдельные запросы операционной системы, а отменяет внутреннюю буферизацию, выполняемую fs.writeFile.

Параметры

file: PathLike | FileHandle

имя файла или FileHandle

data:
string
| ArrayBufferView
| Iterable<string | ArrayBufferView>
| AsyncIterable<string | ArrayBufferView>
| Stream
options:
(
ObjectEncodingOptions
& { mode?: Mode | undefined; flag?: OpenMode | undefined; flush?: boolean | undefined; }
& Abortable
)

| BufferEncoding
| null
необязательный

Тип возвращаемого значения

Promise<void>

В случае успеха возвращает undefined.


функция read

Использование в Deno

import { read } from "node:fs";

Перегрузка 1

read<TBuffer extends ArrayBufferView>(
fd: number,
buffer: TBuffer,
offset: number,
length: number,
position: ReadPosition | null,
callback: (
err: ErrnoException | null,
bytesRead: number,
buffer: TBuffer,
) => void
,
): void

Читает данные из файла, указанного в fd.

В callback передаются три аргумента: (err, bytesRead, buffer).

Если файл не изменяется одновременно, конец файла достигается, когда количество прочитанных байтов равно нулю.

Если этот метод вызывается в своей версии с util.promisify(), он возвращает промис для Object со свойствами bytesRead и buffer.

Параметры типа

TBuffer extends ArrayBufferView

Параметры

fd: number
buffer: TBuffer

Буфер, в который будут записаны данные.

offset: number

Позиция в buffer, в которую нужно записать данные.

length: number

Количество байтов для чтения.

position: ReadPosition | null

Указывает, с какого места в файле начинать чтение. Если position равно null или -1 , данные будут считываться с текущей позиции в файле, и позиция в файле будет обновлена. Если position является целым числом, позиция в файле останется неизменной.

callback: (
err: ErrnoException | null,
bytesRead: number,
buffer: TBuffer,
) => void

Тип возвращаемого значения

void

Перегрузка 2

read<TBuffer extends ArrayBufferView>(
fd: number,
options: ReadAsyncOptions<TBuffer>,
callback: (
err: ErrnoException | null,
bytesRead: number,
buffer: TBuffer,
) => void
,
): void

Подобно описанной выше функции fs.read, эта версия принимает необязательный объект options. Если в объекте options не указано иное, для buffer по умолчанию используется Buffer.alloc(16384), для offset — 0, для length — buffer.byteLength, а для - offset в Node 17.6.0 и новее по умолчанию используется position — null

Параметры типа

TBuffer extends ArrayBufferView

Параметры

fd: number
options: ReadAsyncOptions<TBuffer>
callback: (
err: ErrnoException | null,
bytesRead: number,
buffer: TBuffer,
) => void

Тип возвращаемого значения

void

Перегрузка 3

read<TBuffer extends ArrayBufferView>(
fd: number,
buffer: TBuffer,
options: ReadSyncOptions,
callback: (
err: ErrnoException | null,
bytesRead: number,
buffer: TBuffer,
) => void
,
): void

Параметры типа

TBuffer extends ArrayBufferView

Параметры

fd: number
buffer: TBuffer
options: ReadSyncOptions
callback: (
err: ErrnoException | null,
bytesRead: number,
buffer: TBuffer,
) => void

Тип возвращаемого значения

void

Перегрузка 4

read<TBuffer extends ArrayBufferView>(
fd: number,
buffer: TBuffer,
callback: (
err: ErrnoException | null,
bytesRead: number,
buffer: TBuffer,
) => void
,
): void

Параметры типа

TBuffer extends ArrayBufferView

Параметры

fd: number
buffer: TBuffer
callback: (
err: ErrnoException | null,
bytesRead: number,
buffer: TBuffer,
) => void

Тип возвращаемого значения

void

Перегрузка 5

read(
fd: number,
callback: (
err: ErrnoException | null,
bytesRead: number,
buffer: ArrayBufferView,
) => void
,
): void

Параметры

fd: number
callback: (
err: ErrnoException | null,
bytesRead: number,
buffer: ArrayBufferView,
) => void

Тип возвращаемого значения

void

функция readdir

Использование в Deno

import { readdir } from "node:fs";

Перегрузка 1

readdir(
path: PathLike,
options:
{ encoding: BufferEncoding | null; withFileTypes?: false | undefined; recursive?: boolean | undefined; }
| BufferEncoding
| undefined
| null
,
callback: (
err: ErrnoException | null,
files: string[],
) => void
,
): void

Читает содержимое каталога. В callback передаются два аргумента (err, files), где files — массив имен файлов в каталоге, за исключением '.' и '..'.

Дополнительную информацию см. в документации POSIX по функции readdir(3).

Необязательный аргумент options может быть строкой, указывающей кодировку, или объектом со свойством encoding, задающим кодировку символов для имен файлов, передаваемых в callback. Если для encoding задано значение 'buffer', возвращаемые имена файлов будут передаваться как объекты Buffer.

Если для options.withFileTypes задано значение true, массив files будет содержать объекты fs.Dirent.

Параметры

path: PathLike
options:
{ encoding: BufferEncoding | null; withFileTypes?: false | undefined; recursive?: boolean | undefined; }
| BufferEncoding
| undefined
| null
callback: (
err: ErrnoException | null,
files: string[],
) => void

Тип возвращаемого значения

void

Перегрузка 2

readdir(
path: PathLike,
options: { encoding: "buffer"; withFileTypes?: false | undefined; recursive?: boolean | undefined; } | "buffer",
callback: (
err: ErrnoException | null,
files: Buffer[],
) => void
,
): void

Асинхронная readdir(3) — чтение каталога.

Параметры

path: PathLike

Путь к файлу. Если указан URL, он должен использовать протокол file:.

options: { encoding: "buffer"; withFileTypes?: false | undefined; recursive?: boolean | undefined; } | "buffer"

Кодировка (или объект с указанием кодировки), используемая для результата. Если не указана, используется 'utf8'.

callback: (
err: ErrnoException | null,
files: Buffer[],
) => void

Тип возвращаемого значения

void

Перегрузка 3

readdir(
path: PathLike,
options:
(ObjectEncodingOptions & { withFileTypes?: false | undefined; recursive?: boolean | undefined; })
| BufferEncoding
| undefined
| null
,
callback: (
err: ErrnoException | null,
files: string[] | Buffer[],
) => void
,
): void

Асинхронная readdir(3) — чтение каталога.

Параметры

path: PathLike

Путь к файлу. Если указан URL, он должен использовать протокол file:.

options:
(ObjectEncodingOptions & { withFileTypes?: false | undefined; recursive?: boolean | undefined; })
| BufferEncoding
| undefined
| null

Кодировка (или объект с указанием кодировки), используемая для результата. Если не указана, используется 'utf8'.

callback: (
err: ErrnoException | null,
files: string[] | Buffer[],
) => void

Тип возвращаемого значения

void

Перегрузка 4

readdir(
path: PathLike,
callback: (
err: ErrnoException | null,
files: string[],
) => void
,
): void

Асинхронная readdir(3) — чтение каталога.

Параметры

path: PathLike

Путь к файлу. Если указан URL, он должен использовать протокол file:.

callback: (
err: ErrnoException | null,
files: string[],
) => void

Тип возвращаемого значения

void

Перегрузка 5

readdir(
path: PathLike,
options: ObjectEncodingOptions & { withFileTypes: true; recursive?: boolean | undefined; },
callback: (
err: ErrnoException | null,
files: Dirent[],
) => void
,
): void

Асинхронная readdir(3) — чтение каталога.

Параметры

path: PathLike

Путь к файлу. Если указан URL, он должен использовать протокол file:.

options: ObjectEncodingOptions & { withFileTypes: true; recursive?: boolean | undefined; }

При вызове с withFileTypes: true данные результата будут массивом Dirent.

callback: (
err: ErrnoException | null,
files: Dirent[],
) => void

Тип возвращаемого значения

void

функция readdirSync

Использование в Deno

import { readdirSync } from "node:fs";

Перегрузка 1

readdirSync(
path: PathLike,
options?:
{ encoding: BufferEncoding | null; withFileTypes?: false | undefined; recursive?: boolean | undefined; }
| BufferEncoding
| null
,
): string[]

Читает содержимое каталога.

Дополнительную информацию см. в документации POSIX по функции readdir(3).

Необязательный аргумент options может быть строкой, указывающей кодировку, или объектом со свойством encoding, задающим кодировку символов для возвращаемых имен файлов. Если для encoding задано значение 'buffer', возвращаемые имена файлов будут передаваться как объекты Buffer.

Если для options.withFileTypes задано значение true, результат будет содержать объекты fs.Dirent.

Параметры

path: PathLike
options:
{ encoding: BufferEncoding | null; withFileTypes?: false | undefined; recursive?: boolean | undefined; }
| BufferEncoding
| null
необязательный

Тип возвращаемого значения

string[]

Перегрузка 2

readdirSync(
path: PathLike,
options: { encoding: "buffer"; withFileTypes?: false | undefined; recursive?: boolean | undefined; } | "buffer",
): Buffer[]

Синхронная readdir(3) — чтение каталога.

Параметры

path: PathLike

Путь к файлу. Если указан URL, он должен использовать протокол file:.

options: { encoding: "buffer"; withFileTypes?: false | undefined; recursive?: boolean | undefined; } | "buffer"

Кодировка (или объект с указанием кодировки), используемая для результата. Если не указана, используется 'utf8'.

Тип возвращаемого значения

Buffer[]

Перегрузка 3

readdirSync(
path: PathLike,
options?:
(ObjectEncodingOptions & { withFileTypes?: false | undefined; recursive?: boolean | undefined; })
| BufferEncoding
| null
,
): string[] | Buffer[]

Синхронная readdir(3) — чтение каталога.

Параметры

path: PathLike

Путь к файлу. Если указан URL, он должен использовать протокол file:.

options:
(ObjectEncodingOptions & { withFileTypes?: false | undefined; recursive?: boolean | undefined; })
| BufferEncoding
| null
необязательный

Кодировка (или объект с указанием кодировки), используемая для результата. Если не указана, используется 'utf8'.

Тип возвращаемого значения

string[] | Buffer[]

Перегрузка 4

readdirSync(
path: PathLike,
options: ObjectEncodingOptions & { withFileTypes: true; recursive?: boolean | undefined; },
): Dirent[]

Синхронная readdir(3) — чтение каталога.

Параметры

path: PathLike

Путь к файлу. Если указан URL, он должен использовать протокол file:.

options: ObjectEncodingOptions & { withFileTypes: true; recursive?: boolean | undefined; }

При вызове с withFileTypes: true данные результата будут массивом Dirent.

Тип возвращаемого значения

Dirent[]

функция readFile

Использование в Deno

import { readFile } from "node:fs";

Перегрузка 1

readFile(
path: PathOrFileDescriptor,
options:
({ encoding?: null | undefined; flag?: string | undefined; } & Abortable)
| undefined
| null
,
callback: (
err: ErrnoException | null,
data: Buffer,
) => void
,
): void

Асинхронно считывает всё содержимое файла.

import { readFile } from 'node:fs';

readFile('/etc/passwd', (err, data) => {
  if (err) throw err;
  console.log(data);
});

В callback-функцию передаются два аргумента (err, data), где data — содержимое файла.

Если кодировка не указана, возвращается исходный буфер.

Если options — строка, она задаёт кодировку:

import { readFile } from 'node:fs';

readFile('/etc/passwd', 'utf8', callback);

Если путь указывает на каталог, поведение fs.readFile() и readFileSync зависит от платформы. В macOS, Linux и Windows будет возвращена ошибка. Во FreeBSD будет возвращено представление содержимого каталога.

import { readFile } from 'node:fs';

// macOS, Linux, and Windows
readFile('<directory>', (err, data) => {
  // => [Error: EISDIR: illegal operation on a directory, read <directory>]
});

//  FreeBSD
readFile('<directory>', (err, data) => {
  // => null, <data>
});

Текущий запрос можно прервать с помощью AbortSignal. Если запрос прерван, callback-функция вызывается с AbortError:

import { readFile } from 'node:fs';

const controller = new AbortController();
const signal = controller.signal;
readFile(fileInfo[0].name, { signal }, (err, buf) => {
  // ...
});
// When you want to abort the request
controller.abort();

Функция fs.readFile() буферизует весь файл целиком. Чтобы свести к минимуму затраты памяти, по возможности используйте потоковую передачу через fs.createReadStream().

Прерывание текущего запроса не отменяет отдельные запросы операционной системы, а лишь прекращает внутреннюю буферизацию, которую выполняет fs.readFile.

Параметры

path: PathOrFileDescriptor

имя файла или файловый дескриптор

options:
({ encoding?: null | undefined; flag?: string | undefined; } & Abortable)
| undefined
| null
callback: (
err: ErrnoException | null,
data: Buffer,
) => void

Тип возвращаемого значения

void

Перегрузка 2

readFile(
path: PathOrFileDescriptor,
options: ({ encoding: BufferEncoding; flag?: string | undefined; } & Abortable) | BufferEncoding,
callback: (
err: ErrnoException | null,
data: string,
) => void
,
): void

Асинхронно считывает всё содержимое файла.

Параметры

path: PathOrFileDescriptor

Путь к файлу. Если передан URL, он должен использовать протокол file:. Если передан файловый дескриптор, соответствующий файл не будет закрыт автоматически.

options: ({ encoding: BufferEncoding; flag?: string | undefined; } & Abortable) | BufferEncoding

Кодировка результата или объект, содержащий кодировку и необязательный флаг. Если флаг не указан, по умолчанию используется 'r'.

callback: (
err: ErrnoException | null,
data: string,
) => void

Тип возвращаемого значения

void

Перегрузка 3

readFile(
path: PathOrFileDescriptor,
options:
(
ObjectEncodingOptions
& { flag?: string | undefined; }
& Abortable
)

| BufferEncoding
| undefined
| null
,
callback: (
err: ErrnoException | null,
data: string | Buffer,
) => void
,
): void

Асинхронно считывает всё содержимое файла.

Параметры

path: PathOrFileDescriptor

Путь к файлу. Если передан URL, он должен использовать протокол file:. Если передан файловый дескриптор, соответствующий файл не будет закрыт автоматически.

options:
(
ObjectEncodingOptions
& { flag?: string | undefined; }
& Abortable
)

| BufferEncoding
| undefined
| null

Кодировка результата или объект, содержащий кодировку и необязательный флаг. Если флаг не указан, по умолчанию используется 'r'.

callback: (
err: ErrnoException | null,
data: string | Buffer,
) => void

Тип возвращаемого значения

void

Перегрузка 4

readFile(
path: PathOrFileDescriptor,
callback: (
err: ErrnoException | null,
data: Buffer,
) => void
,
): void

Асинхронно считывает всё содержимое файла.

Параметры

path: PathOrFileDescriptor

Путь к файлу. Если передан URL, он должен использовать протокол file:. Если передан файловый дескриптор, соответствующий файл не будет закрыт автоматически.

callback: (
err: ErrnoException | null,
data: Buffer,
) => void

Тип возвращаемого значения

void

функция readFileSync

Использование в Deno

import { readFileSync } from "node:fs";

Перегрузка 1

readFileSync(
path: PathOrFileDescriptor,
options?: { encoding?: null | undefined; flag?: string | undefined; } | null,
): Buffer

Возвращает содержимое path.

Подробную информацию см. в документации асинхронной версии этого API: readFile.

Если указан параметр encoding, функция возвращает строку. В противном случае она возвращает буфер.

Как и в случае с readFile, если путь указывает на каталог, поведение fs.readFileSync() зависит от платформы.

import { readFileSync } from 'node:fs';

// macOS, Linux, and Windows
readFileSync('<directory>');
// => [Error: EISDIR: illegal operation on a directory, read <directory>]

//  FreeBSD
readFileSync('<directory>'); // => <data>

Параметры

path: PathOrFileDescriptor

имя файла или файловый дескриптор

options: { encoding?: null | undefined; flag?: string | undefined; } | null
необязательный

Тип возвращаемого значения

Buffer

Перегрузка 2

readFileSync(
path: PathOrFileDescriptor,
options: { encoding: BufferEncoding; flag?: string | undefined; } | BufferEncoding,
): string

Синхронно считывает всё содержимое файла.

Параметры

path: PathOrFileDescriptor

Путь к файлу. Если передан URL, он должен использовать протокол file:. Если передан файловый дескриптор, соответствующий файл не будет закрыт автоматически.

options: { encoding: BufferEncoding; flag?: string | undefined; } | BufferEncoding

Кодировка результата или объект, содержащий кодировку и необязательный флаг. Если флаг не указан, по умолчанию используется 'r'.

Тип возвращаемого значения

string

Перегрузка 3

readFileSync(
path: PathOrFileDescriptor,
options?:
(ObjectEncodingOptions & { flag?: string | undefined; })
| BufferEncoding
| null
,
): string | Buffer

Синхронно считывает всё содержимое файла.

Параметры

path: PathOrFileDescriptor

Путь к файлу. Если передан URL, он должен использовать протокол file:. Если передан файловый дескриптор, соответствующий файл не будет закрыт автоматически.

options:
(ObjectEncodingOptions & { flag?: string | undefined; })
| BufferEncoding
| null
необязательный

Кодировка результата или объект, содержащий кодировку и необязательный флаг. Если флаг не указан, по умолчанию используется 'r'.

Тип возвращаемого значения

string | Buffer

функция readlink

Использование в Deno

import { readlink } from "node:fs";

Перегрузка 1

readlink(
path: PathLike,
options: EncodingOption,
callback: (
err: ErrnoException | null,
linkString: string,
) => void
,
): void

Считывает содержимое символической ссылки, на которую указывает path. В callback-функцию передаются два аргумента (err, linkString).

Дополнительные сведения см. в документации POSIX для readlink(2).

Необязательный аргумент options может быть строкой, задающей кодировку, или объектом со свойством encoding, которое задаёт кодировку символов для пути ссылки, передаваемого в callback-функцию. Если для encoding задано значение 'buffer', возвращаемый путь ссылки передаётся в виде объекта Buffer.

Параметры

path: PathLike
options: EncodingOption
callback: (
err: ErrnoException | null,
linkString: string,
) => void

Тип возвращаемого значения

void

Перегрузка 2

readlink(
path: PathLike,
options: BufferEncodingOption,
callback: (
err: ErrnoException | null,
linkString: Buffer,
) => void
,
): void

Асинхронный readlink(2) — считывание значения символической ссылки.

Параметры

path: PathLike

Путь к файлу. Если передан URL, он должен использовать протокол file:.

options: BufferEncodingOption

Кодировка (или объект, задающий кодировку), используемая для кодирования результата. Если не указана, используется 'utf8'.

callback: (
err: ErrnoException | null,
linkString: Buffer,
) => void

Тип возвращаемого значения

void

Перегрузка 3

readlink(
path: PathLike,
options: EncodingOption,
callback: (
err: ErrnoException | null,
linkString: string | Buffer,
) => void
,
): void

Асинхронный readlink(2) — считывание значения символической ссылки.

Параметры

path: PathLike

Путь к файлу. Если передан URL, он должен использовать протокол file:.

options: EncodingOption

Кодировка (или объект, задающий кодировку), используемая для кодирования результата. Если не указана, используется 'utf8'.

callback: (
err: ErrnoException | null,
linkString: string | Buffer,
) => void

Тип возвращаемого значения

void

Перегрузка 4

readlink(
path: PathLike,
callback: (
err: ErrnoException | null,
linkString: string,
) => void
,
): void

Асинхронный readlink(2) — считывание значения символической ссылки.

Параметры

path: PathLike

Путь к файлу. Если передан URL, он должен использовать протокол file:.

callback: (
err: ErrnoException | null,
linkString: string,
) => void

Тип возвращаемого значения

void

функция readlinkSync

Использование в Deno

import { readlinkSync } from "node:fs";

Перегрузка 1

readlinkSync(
path: PathLike,
options?: EncodingOption,
): string

Возвращает строковое значение символической ссылки.

Дополнительные сведения см. в документации POSIX для readlink(2).

Необязательный аргумент options может быть строкой, задающей кодировку, или объектом со свойством encoding, которое задаёт кодировку символов для возвращаемого пути ссылки. Если для encoding задано значение 'buffer', возвращаемый путь ссылки передаётся в виде объекта Buffer.

Параметры

path: PathLike
options: EncodingOption
необязательный

Тип возвращаемого значения

string

Перегрузка 2

readlinkSync(
path: PathLike,
options: BufferEncodingOption,
): Buffer

Синхронный readlink(2) — считывание значения символической ссылки.

Параметры

path: PathLike

Путь к файлу. Если передан URL, он должен использовать протокол file:.

options: BufferEncodingOption

Кодировка (или объект, задающий кодировку), используемая для кодирования результата. Если не указана, используется 'utf8'.

Тип возвращаемого значения

Buffer

Перегрузка 3

readlinkSync(
path: PathLike,
options?: EncodingOption,
): string | Buffer

Синхронный readlink(2) — считывание значения символической ссылки.

Параметры

path: PathLike

Путь к файлу. Если передан URL, он должен использовать протокол file:.

options: EncodingOption
необязательный

Кодировка (или объект, задающий кодировку), используемая для кодирования результата. Если не указана, используется 'utf8'.

Тип возвращаемого значения

string | Buffer

функция readSync

Использование в Deno

import { readSync } from "node:fs";

Перегрузка 1

readSync(
fd: number,
buffer: ArrayBufferView,
offset: number,
length: number,
position: ReadPosition | null,
): number

Возвращает количество bytesRead.

Подробную информацию см. в документации асинхронной версии этого API: read.

Параметры

fd: number
buffer: ArrayBufferView
offset: number
length: number
position: ReadPosition | null = 'null'
необязательный

Тип возвращаемого значения

number

Перегрузка 2

readSync(
fd: number,
buffer: ArrayBufferView,
opts?: ReadSyncOptions,
): number

Подобно описанной выше функции fs.readSync, эта версия принимает необязательный объект options. Если объект options не указан, используются значения, приведённые выше.

Параметры

fd: number
buffer: ArrayBufferView
opts: ReadSyncOptions
необязательный

Тип возвращаемого значения

number

функция readv

Использование в Deno

import { readv } from "node:fs";

Вариант 1

readv(
fd: number,
buffers: readonly ArrayBufferView[],
cb: (
err: ErrnoException | null,
bytesRead: number,
buffers: ArrayBufferView[],
) => void
,
): void

Читает данные из файла, указанного в fd, и записывает их в массив ArrayBufferView с помощью readv().

position — это смещение от начала файла, с которого следует читать данные. Если typeof position !== 'number', данные будут прочитаны с текущей позиции.

В callback-функцию передаются три аргумента: err, bytesRead и buffers. bytesRead — количество байтов, прочитанных из файла.

При вызове этой функции в её версии с суффиксом util.promisify() она возвращает промис с Object, содержащим свойства bytesRead и buffers.

Параметры

fd: number
buffers: readonly ArrayBufferView[]
cb: (
err: ErrnoException | null,
bytesRead: number,
buffers: ArrayBufferView[],
) => void

Тип возвращаемого значения

void

Вариант 2

readv(
fd: number,
buffers: readonly ArrayBufferView[],
position: number | null,
cb: (
err: ErrnoException | null,
bytesRead: number,
buffers: ArrayBufferView[],
) => void
,
): void

Параметры

fd: number
buffers: readonly ArrayBufferView[]
position: number | null
cb: (
err: ErrnoException | null,
bytesRead: number,
buffers: ArrayBufferView[],
) => void

Тип возвращаемого значения

void

функция readvSync

Использование в Deno

import { readvSync } from "node:fs";
readvSync(
fd: number,
buffers: readonly ArrayBufferView[],
position?: number,
): number

Подробную информацию см. в документации асинхронной версии этого API: readv.

Параметры

fd: number
buffers: readonly ArrayBufferView[]
position: number = 'null'
необязательный

Тип возвращаемого значения

number

Количество прочитанных байтов.


функция realpath

Использование в Deno

import { realpath } from "node:fs";

Вариант 1

realpath(
path: PathLike,
options: EncodingOption,
callback: (
err: ErrnoException | null,
resolvedPath: string,
) => void
,
): void

Асинхронно вычисляет канонический путь, разрешая ., .. и символические ссылки.

Канонический путь не обязательно является уникальным. Жёсткие ссылки и bind-монтирования позволяют обращаться к объекту файловой системы по множеству путей.

Эта функция работает подобно realpath(3), за некоторыми исключениями:

  1. В файловых системах без учёта регистра символов преобразование регистра не выполняется.
  2. Максимальное количество символических ссылок не зависит от платформы и, как правило, значительно превышает ограничение, поддерживаемое собственной реализацией realpath(3).

В callback передаются два аргумента (err, resolvedPath). Для разрешения относительных путей можно использовать process.cwd.

Поддерживаются только пути, которые можно преобразовать в строки UTF8.

Необязательный аргумент options может быть строкой, задающей кодировку, или объектом со свойством encoding, указывающим кодировку символов для пути, передаваемого в callback-функцию. Если для encoding задано значение 'buffer', возвращаемый путь будет передан как объект Buffer.

Если path указывает на сокет или канал, функция вернёт зависящее от системы имя этого объекта.

Параметры

path: PathLike
options: EncodingOption
callback: (
err: ErrnoException | null,
resolvedPath: string,
) => void

Тип возвращаемого значения

void

Вариант 2

realpath(
path: PathLike,
options: BufferEncodingOption,
callback: (
err: ErrnoException | null,
resolvedPath: Buffer,
) => void
,
): void

Асинхронный realpath(3) — возвращает канонизированный абсолютный путь.

Параметры

path: PathLike

Путь к файлу. Если указан URL, он должен использовать протокол file:.

options: BufferEncodingOption

Кодировка (или объект, задающий кодировку), используемая для результата. Если она не указана, используется 'utf8'.

callback: (
err: ErrnoException | null,
resolvedPath: Buffer,
) => void

Тип возвращаемого значения

void

Вариант 3

realpath(
path: PathLike,
options: EncodingOption,
callback: (
err: ErrnoException | null,
resolvedPath: string | Buffer,
) => void
,
): void

Асинхронный realpath(3) — возвращает канонизированный абсолютный путь.

Параметры

path: PathLike

Путь к файлу. Если указан URL, он должен использовать протокол file:.

options: EncodingOption

Кодировка (или объект, задающий кодировку), используемая для результата. Если она не указана, используется 'utf8'.

callback: (
err: ErrnoException | null,
resolvedPath: string | Buffer,
) => void

Тип возвращаемого значения

void

Вариант 4

realpath(
path: PathLike,
callback: (
err: ErrnoException | null,
resolvedPath: string,
) => void
,
): void

Асинхронный realpath(3) — возвращает канонизированный абсолютный путь.

Параметры

path: PathLike

Путь к файлу. Если указан URL, он должен использовать протокол file:.

callback: (
err: ErrnoException | null,
resolvedPath: string,
) => void

Тип возвращаемого значения

void

пространство имён realpath

Функции

realpath.native

Асинхронный вариант realpath(3).


функция realpath.native

Использование в Deno

import { realpath } from "node:fs";

Вариант 1

native(
path: PathLike,
options: EncodingOption,
callback: (
err: ErrnoException | null,
resolvedPath: string,
) => void
,
): void

Асинхронный вариант realpath(3).

В callback передаются два аргумента (err, resolvedPath).

Поддерживаются только пути, которые можно преобразовать в строки UTF8.

Необязательный аргумент options может быть строкой, задающей кодировку, или объектом со свойством encoding, указывающим кодировку символов для пути, передаваемого в callback-функцию. Если для encoding задано значение 'buffer', возвращаемый путь будет передан как объект Buffer.

В Linux, если Node.js скомпонован с musl libc, для работы этой функции файловая система procfs должна быть смонтирована в /proc. Для glibc такого ограничения нет.

Параметры

path: PathLike
options: EncodingOption
callback: (
err: ErrnoException | null,
resolvedPath: string,
) => void

Тип возвращаемого значения

void

Вариант 2

native(
path: PathLike,
options: BufferEncodingOption,
callback: (
err: ErrnoException | null,
resolvedPath: Buffer,
) => void
,
): void

Параметры

path: PathLike
options: BufferEncodingOption
callback: (
err: ErrnoException | null,
resolvedPath: Buffer,
) => void

Тип возвращаемого значения

void

Вариант 3

native(
path: PathLike,
options: EncodingOption,
callback: (
err: ErrnoException | null,
resolvedPath: string | Buffer,
) => void
,
): void

Параметры

path: PathLike
options: EncodingOption
callback: (
err: ErrnoException | null,
resolvedPath: string | Buffer,
) => void

Тип возвращаемого значения

void

Вариант 4

native(
path: PathLike,
callback: (
err: ErrnoException | null,
resolvedPath: string,
) => void
,
): void

Параметры

path: PathLike
callback: (
err: ErrnoException | null,
resolvedPath: string,
) => void

Тип возвращаемого значения

void

функция realpathSync

Использование в Deno

import { realpathSync } from "node:fs";

Вариант 1

realpathSync(
path: PathLike,
options?: EncodingOption,
): string

Возвращает разрешённый путь.

Подробную информацию см. в документации асинхронной версии этого API: realpath.

Параметры

path: PathLike
options: EncodingOption
необязательный

Тип возвращаемого значения

string

Вариант 2

realpathSync(
path: PathLike,
options: BufferEncodingOption,
): Buffer

Синхронный realpath(3) — возвращает канонизированный абсолютный путь.

Параметры

path: PathLike

Путь к файлу. Если указан URL, он должен использовать протокол file:.

options: BufferEncodingOption

Кодировка (или объект, задающий кодировку), используемая для результата. Если она не указана, используется 'utf8'.

Тип возвращаемого значения

Buffer

Вариант 3

realpathSync(
path: PathLike,
options?: EncodingOption,
): string | Buffer

Синхронный realpath(3) — возвращает канонизированный абсолютный путь.

Параметры

path: PathLike

Путь к файлу. Если указан URL, он должен использовать протокол file:.

options: EncodingOption
необязательный

Кодировка (или объект, задающий кодировку), используемая для результата. Если она не указана, используется 'utf8'.

Тип возвращаемого значения

string | Buffer

пространство имён realpathSync

Функции

realpathSync.native
Документация отсутствует

функция realpathSync.native

Использование в Deno

import { realpathSync } from "node:fs";

Вариант 1

native(
path: PathLike,
options?: EncodingOption,
): string

Параметры

path: PathLike
options: EncodingOption
необязательный

Тип возвращаемого значения

string

Вариант 2

native(
path: PathLike,
options: BufferEncodingOption,
): Buffer

Параметры

path: PathLike
options: BufferEncodingOption

Тип возвращаемого значения

Buffer

Вариант 3

native(
path: PathLike,
options?: EncodingOption,
): string | Buffer

Параметры

path: PathLike
options: EncodingOption
необязательный

Тип возвращаемого значения

string | Buffer

функция rename

Использование в Deno

import { rename } from "node:fs";
rename(
oldPath: PathLike,
newPath: PathLike,
callback: NoParamCallback,
): void

Асинхронно переименовывает файл по пути oldPath в имя, указанное в newPath. Если newPath уже существует, он будет перезаписан. Если по пути newPath находится каталог, будет вызвана ошибка. В функцию обратного вызова завершения передаются только аргументы, связанные с возможным исключением.

См. также: rename(2).

import { rename } from 'node:fs';

rename('oldFile.txt', 'newFile.txt', (err) => {
  if (err) throw err;
  console.log('Rename complete!');
});

Параметры

oldPath: PathLike
newPath: PathLike
callback: NoParamCallback

Возвращаемый тип

void

функция renameSync

Использование в Deno

import { renameSync } from "node:fs";
renameSync(
oldPath: PathLike,
newPath: PathLike,
): void

Переименовывает файл из oldPath в newPath. Возвращает undefined.

Подробнее см. документацию POSIX по rename(2).

Параметры

oldPath: PathLike
newPath: PathLike

Возвращаемый тип

void

функция rm

Использование в Deno

import { rm } from "node:fs";

Перегрузка 1

rm(
path: PathLike,
callback: NoParamCallback,
): void

Асинхронно удаляет файлы и каталоги (по образцу стандартной утилиты POSIX rm). В функцию обратного вызова завершения передаются только аргументы, связанные с возможным исключением.

Параметры

path: PathLike
callback: NoParamCallback

Возвращаемый тип

void

Перегрузка 2

rm(
path: PathLike,
options: RmOptions,
callback: NoParamCallback,
): void

Параметры

path: PathLike
options: RmOptions
callback: NoParamCallback

Возвращаемый тип

void

функция rmdir

Использование в Deno

import { rmdir } from "node:fs";

Перегрузка 1

rmdir(
path: PathLike,
callback: NoParamCallback,
): void

Асинхронная версия rmdir(2). В функцию обратного вызова завершения передаются только аргументы, связанные с возможным исключением.

При использовании fs.rmdir() для файла (не каталога) в Windows возникает ошибка ENOENT, а в POSIX — ошибка ENOTDIR.

Чтобы получить поведение, аналогичное поведению команды Unix rm -rf, используйте rm с параметрами { recursive: true, force: true }.

Параметры

path: PathLike
callback: NoParamCallback

Возвращаемый тип

void

Перегрузка 2

rmdir(
path: PathLike,
options: RmDirOptions,
callback: NoParamCallback,
): void

Параметры

path: PathLike
options: RmDirOptions
callback: NoParamCallback

Возвращаемый тип

void

функция rmdirSync

Использование в Deno

import { rmdirSync } from "node:fs";
rmdirSync(
path: PathLike,
options?: RmDirOptions,
): void

Синхронная версия rmdir(2). Возвращает undefined.

При использовании fs.rmdirSync() для файла (не каталога) в Windows возникает ошибка ENOENT, а в POSIX — ошибка ENOTDIR.

Чтобы получить поведение, аналогичное поведению команды Unix rm -rf, используйте rmSync с параметрами { recursive: true, force: true }.

Параметры

path: PathLike
options: RmDirOptions
необязательный

Возвращаемый тип

void

функция rmSync

Использование в Deno

import { rmSync } from "node:fs";
rmSync(
path: PathLike,
options?: RmOptions,
): void

Синхронно удаляет файлы и каталоги (по образцу стандартной утилиты POSIX rm). Возвращает undefined.

Параметры

path: PathLike
options: RmOptions
необязательный

Возвращаемый тип

void

функция stat

Использование в Deno

import { stat } from "node:fs";

Перегрузка 1

stat(
path: PathLike,
callback: (
err: ErrnoException | null,
stats: Stats,
) => void
,
): void

Асинхронная версия stat(2). Функция обратного вызова получает два аргумента (err, stats), где stats — объект fs.Stats.

В случае ошибки значение err.code будет одним из Common System Errors.

stat следует по символическим ссылкам. Чтобы проверить сами ссылки, используйте lstat.

Не рекомендуется использовать fs.stat() для проверки существования файла перед вызовом fs.open(), fs.readFile() или fs.writeFile(). Вместо этого пользовательскому коду следует напрямую открыть, прочитать или записать файл и обработать ошибку, возникающую, если файл недоступен.

Чтобы проверить, существует ли файл, не выполняя дальнейших действий с ним, рекомендуется использовать access.

Например, для следующей структуры каталогов:

- txtDir
-- file.txt
- app.js

Следующая программа проверит сведения о заданных путях:

import { stat } from 'node:fs';

const pathsToCheck = ['./txtDir', './txtDir/file.txt'];

for (let i = 0; i < pathsToCheck.length; i++) {
  stat(pathsToCheck[i], (err, stats) => {
    console.log(stats.isDirectory());
    console.log(stats);
  });
}

Результат будет выглядеть примерно так:

true
Stats {
  dev: 16777220,
  mode: 16877,
  nlink: 3,
  uid: 501,
  gid: 20,
  rdev: 0,
  blksize: 4096,
  ino: 14214262,
  size: 96,
  blocks: 0,
  atimeMs: 1561174653071.963,
  mtimeMs: 1561174614583.3518,
  ctimeMs: 1561174626623.5366,
  birthtimeMs: 1561174126937.2893,
  atime: 2019-06-22T03:37:33.072Z,
  mtime: 2019-06-22T03:36:54.583Z,
  ctime: 2019-06-22T03:37:06.624Z,
  birthtime: 2019-06-22T03:28:46.937Z
}
false
Stats {
  dev: 16777220,
  mode: 33188,
  nlink: 1,
  uid: 501,
  gid: 20,
  rdev: 0,
  blksize: 4096,
  ino: 14214074,
  size: 8,
  blocks: 8,
  atimeMs: 1561174616618.8555,
  mtimeMs: 1561174614584,
  ctimeMs: 1561174614583.8145,
  birthtimeMs: 1561174007710.7478,
  atime: 2019-06-22T03:36:56.619Z,
  mtime: 2019-06-22T03:36:54.584Z,
  ctime: 2019-06-22T03:36:54.584Z,
  birthtime: 2019-06-22T03:26:47.711Z
}

Параметры

path: PathLike
callback: (
err: ErrnoException | null,
stats: Stats,
) => void

Возвращаемый тип

void

Перегрузка 2

stat(
path: PathLike,
options: (StatOptions & { bigint?: false | undefined; }) | undefined,
callback: (
err: ErrnoException | null,
stats: Stats,
) => void
,
): void

Параметры

path: PathLike
options: (StatOptions & { bigint?: false | undefined; }) | undefined
callback: (
err: ErrnoException | null,
stats: Stats,
) => void

Возвращаемый тип

void

Перегрузка 3

stat(
path: PathLike,
options: StatOptions & { bigint: true; },
callback: (
err: ErrnoException | null,
stats: BigIntStats,
) => void
,
): void

Параметры

path: PathLike
options: StatOptions & { bigint: true; }
callback: (
err: ErrnoException | null,
stats: BigIntStats,
) => void

Возвращаемый тип

void

Перегрузка 4

stat(
path: PathLike,
options: StatOptions | undefined,
callback: (
err: ErrnoException | null,
stats: Stats | BigIntStats,
) => void
,
): void

Параметры

path: PathLike
options: StatOptions | undefined
callback: (
err: ErrnoException | null,
stats: Stats | BigIntStats,
) => void

Возвращаемый тип

void

функция statfs

Использование в Deno

import { statfs } from "node:fs";

Перегрузка 1

statfs(
path: PathLike,
callback: (
err: ErrnoException | null,
stats: StatsFs,
) => void
,
): void

Асинхронная версия statfs(2). Возвращает сведения о смонтированной файловой системе, содержащей path. Функция обратного вызова получает два аргумента (err, stats), где stats — объект fs.StatFs.

В случае ошибки значение err.code будет одним из Common System Errors.

Параметры

path: PathLike

Путь к существующему файлу или каталогу в файловой системе, сведения о которой требуется получить.

callback: (
err: ErrnoException | null,
stats: StatsFs,
) => void

Возвращаемый тип

void

Перегрузка 2

statfs(
path: PathLike,
options: (StatFsOptions & { bigint?: false | undefined; }) | undefined,
callback: (
err: ErrnoException | null,
stats: StatsFs,
) => void
,
): void

Параметры

path: PathLike
options: (StatFsOptions & { bigint?: false | undefined; }) | undefined
callback: (
err: ErrnoException | null,
stats: StatsFs,
) => void

Возвращаемый тип

void

Перегрузка 3

statfs(
path: PathLike,
options: StatFsOptions & { bigint: true; },
callback: (
err: ErrnoException | null,
stats: BigIntStatsFs,
) => void
,
): void

Параметры

path: PathLike
options: StatFsOptions & { bigint: true; }
callback: (
err: ErrnoException | null,
stats: BigIntStatsFs,
) => void

Возвращаемый тип

void

Перегрузка 4

statfs(
path: PathLike,
options: StatFsOptions | undefined,
callback: (
err: ErrnoException | null,
stats: StatsFs | BigIntStatsFs,
) => void
,
): void

Параметры

path: PathLike
options: StatFsOptions | undefined
callback: (
err: ErrnoException | null,
stats: StatsFs | BigIntStatsFs,
) => void

Возвращаемый тип

void

функция statfsSync

Использование в Deno

import { statfsSync } from "node:fs";

Перегрузка 1

statfsSync(
path: PathLike,
options?: StatFsOptions & { bigint?: false | undefined; },
): StatsFs

Синхронная версия statfs(2). Возвращает сведения о смонтированной файловой системе, содержащей path.

В случае ошибки значение err.code будет одним из Common System Errors.

Параметры

path: PathLike

Путь к существующему файлу или каталогу в файловой системе, сведения о которой требуется получить.

options: StatFsOptions & { bigint?: false | undefined; }
необязательный

Возвращаемый тип

StatsFs

Перегрузка 2

statfsSync(
path: PathLike,
options: StatFsOptions & { bigint: true; },
): BigIntStatsFs

Параметры

path: PathLike
options: StatFsOptions & { bigint: true; }

Возвращаемый тип

BigIntStatsFs

Перегрузка 3

statfsSync(
path: PathLike,
options?: StatFsOptions,
): StatsFs | BigIntStatsFs

Параметры

path: PathLike
options: StatFsOptions
необязательный

Возвращаемый тип

StatsFs | BigIntStatsFs

функция symlink

Использование в Deno

import { symlink } from "node:fs";

Перегрузка 1

symlink(
target: PathLike,
path: PathLike,
type:
symlink.Type
| undefined
| null
,
callback: NoParamCallback,
): void

Создаёт ссылку с именем path, указывающую на target. В функцию обратного вызова завершения передаются только аргументы, относящиеся к возможному исключению.

Дополнительные сведения см. в документации POSIX для symlink(2).

Аргумент type доступен только в Windows и игнорируется на других платформах. Ему можно задать значение 'dir', 'file' или 'junction'. Если аргумент type не является строкой, Node.js автоматически определит тип target и использует 'file' или 'dir'. Если target не существует, будет использовано 'file'. Для точек соединения Windows путь назначения должен быть абсолютным. При использовании 'junction' аргумент target будет автоматически преобразован в абсолютный путь. Точки соединения на томах NTFS могут указывать только на каталоги.

Относительные цели задаются относительно родительского каталога ссылки.

import { symlink } from 'node:fs';

symlink('./mew', './mewtwo', callback);

Приведённый выше пример создаёт символическую ссылку mewtwo, указывающую на mew в том же каталоге:

$ tree .
.
├── mew
└── mewtwo -> ./mew

Параметры

target: PathLike
path: PathLike
type:
symlink.Type
| undefined
| null
= 'null'
необязательный
callback: NoParamCallback

Тип возвращаемого значения

void

Перегрузка 2

symlink(
target: PathLike,
path: PathLike,
callback: NoParamCallback,
): void

Асинхронный вызов symlink(2) — создание новой символической ссылки на существующий файл.

Параметры

target: PathLike

Путь к существующему файлу. Если указана URL-адрес, он должен использовать протокол file:.

path: PathLike

Путь к новой символической ссылке. Если указан URL-адрес, он должен использовать протокол file:.

callback: NoParamCallback

Тип возвращаемого значения

void

пространство имён symlink

Псевдонимы типов

symlink.Type
Документация отсутствует

функция symlinkSync

Использование в Deno

import { symlinkSync } from "node:fs";
symlinkSync(
target: PathLike,
path: PathLike,
type?: symlink.Type | null,
): void

Возвращает undefined.

Подробные сведения см. в документации асинхронной версии этого API: symlink.

Параметры

target: PathLike
path: PathLike
type: symlink.Type | null = 'null'
необязательный

Тип возвращаемого значения

void

функция truncate

Использование в Deno

import { truncate } from "node:fs";

Перегрузка 1

truncate(
path: PathLike,
len: number | undefined,
callback: NoParamCallback,
): void

Усекает файл. В функцию обратного вызова завершения передаются только аргументы, относящиеся к возможному исключению. В качестве первого аргумента также можно передать дескриптор файла. В этом случае вызывается fs.ftruncate().

import { truncate } from 'node:fs';
// Assuming that 'path/file.txt' is a regular file.
truncate('path/file.txt', (err) => {
  if (err) throw err;
  console.log('path/file.txt was truncated');
});

Передача дескриптора файла считается устаревшей и в будущем может привести к возникновению ошибки.

Дополнительные сведения см. в документации POSIX для truncate(2).

Параметры

path: PathLike
len: number | undefined = 0
необязательный
callback: NoParamCallback

Тип возвращаемого значения

void

Перегрузка 2

truncate(
path: PathLike,
callback: NoParamCallback,
): void

Асинхронный вызов truncate(2) — усечение файла до указанной длины.

Параметры

path: PathLike

Путь к файлу. Если указан URL-адрес, он должен использовать протокол file:.

callback: NoParamCallback

Тип возвращаемого значения

void

функция truncateSync

Использование в Deno

import { truncateSync } from "node:fs";
truncateSync(
path: PathLike,
len?: number,
): void

Усекает файл. Возвращает undefined. В качестве первого аргумента также можно передать дескриптор файла. В этом случае вызывается fs.ftruncateSync().

Передача дескриптора файла считается устаревшей и в будущем может привести к возникновению ошибки.

Параметры

path: PathLike
len: number = 0
необязательный

Тип возвращаемого значения

void

функция unlink

Использование в Deno

import { unlink } from "node:fs";
unlink(
path: PathLike,
callback: NoParamCallback,
): void

Асинхронно удаляет файл или символическую ссылку. В функцию обратного вызова завершения передаются только аргументы, относящиеся к возможному исключению.

import { unlink } from 'node:fs';
// Assuming that 'path/file.txt' is a regular file.
unlink('path/file.txt', (err) => {
  if (err) throw err;
  console.log('path/file.txt was deleted');
});

fs.unlink() не работает с каталогом, пустым или нет. Чтобы удалить каталог, используйте rmdir.

Дополнительные сведения см. в документации POSIX для unlink(2).

Параметры

path: PathLike
callback: NoParamCallback

Тип возвращаемого значения

void

функция unlinkSync

Использование в Deno

import { unlinkSync } from "node:fs";
unlinkSync(path: PathLike): void

Синхронная версия unlink(2). Возвращает undefined.

Параметры

path: PathLike

Тип возвращаемого значения

void

функция unwatchFile

Использование в Deno

import { unwatchFile } from "node:fs";

Перегрузка 1

unwatchFile(
filename: PathLike,
listener?: StatsListener,
): void

Прекращает отслеживание изменений filename. Если указан listener, удаляется только соответствующий обработчик. В противном случае удаляются все обработчики, и отслеживание filename прекращается.

Вызов fs.unwatchFile() с именем файла, изменения которого не отслеживаются, ничего не делает и не вызывает ошибку.

Использование watch эффективнее, чем fs.watchFile() и fs.unwatchFile(). По возможности вместо fs.watchFile() и fs.unwatchFile() следует использовать fs.watch().

Параметры

filename: PathLike
listener: StatsListener
необязательный

Необязательный параметр: обработчик, ранее добавленный с помощью fs.watchFile()

Тип возвращаемого значения

void

Перегрузка 2

unwatchFile(
filename: PathLike,
listener?: BigIntStatsListener,
): void

Параметры

filename: PathLike
listener: BigIntStatsListener
необязательный

Тип возвращаемого значения

void

функция utimes

Использование в Deno

import { utimes } from "node:fs";
utimes(
path: PathLike,
atime: TimeLike,
mtime: TimeLike,
callback: NoParamCallback,
): void

Изменяет временные метки файловой системы объекта, на который указывает path.

Для аргументов atime и mtime действуют следующие правила:

  • Значениями могут быть числа, представляющие время в секундах от начала эпохи Unix, объекты Date или числовые строки, например '123456789.0'.
  • Если значение невозможно преобразовать в число либо оно равно NaN, Infinity или -Infinity, будет выброшено исключение Error.

Параметры

path: PathLike
atime: TimeLike
mtime: TimeLike
callback: NoParamCallback

Тип возвращаемого значения

void

функция utimesSync

Использование в Deno

import { utimesSync } from "node:fs";
utimesSync(
path: PathLike,
atime: TimeLike,
mtime: TimeLike,
): void

Возвращает undefined.

Подробные сведения см. в документации асинхронной версии этого API: utimes.

Параметры

path: PathLike
atime: TimeLike
mtime: TimeLike

Тип возвращаемого значения

void

function watch

Использование в Deno

import { watch } from "node:fs";

Перегрузка 1

watch(
filename: PathLike,
options: (WatchOptions & { encoding: "buffer"; }) | "buffer",
listener?: WatchListener<Buffer>,
): FSWatcher

Отслеживает изменения в filename, где filename является файлом или каталогом.

Второй аргумент необязателен. Если options передан в виде строки, он задаёт encoding. В противном случае options следует передать в виде объекта.

Функция обратного вызова обработчика получает два аргумента (eventType, filename). eventType — это либо 'rename', либо 'change', а filename — имя файла, вызвавшего событие.

На большинстве платформ событие 'rename' возникает всякий раз, когда имя файла появляется в каталоге или исчезает из него.

Функция обратного вызова обработчика привязана к событию 'change', генерируемому fs.FSWatcher, но оно не совпадает со значением 'change' у eventType.

Если передан signal, отмена соответствующего AbortController закроет возвращённый fs.FSWatcher.

Параметры

filename: PathLike
options: (WatchOptions & { encoding: "buffer"; }) | "buffer"
listener: WatchListener<Buffer>
необязательный

Тип возвращаемого значения

FSWatcher

Перегрузка 2

watch(
filename: PathLike,
options?:
WatchOptions
| BufferEncoding
| null
,
listener?: WatchListener<string>,
): FSWatcher

Отслеживает изменения в filename, где filename является файлом или каталогом, и возвращает FSWatcher.

Параметры

filename: PathLike

Путь к файлу или каталогу. Если указан URL, он должен использовать протокол file:.

options:
WatchOptions
| BufferEncoding
| null
необязательный

Кодировка имени файла, передаваемого обработчику, или объект, в котором можно указать параметры encoding, persistent и recursive. Если encoding не задан, используется значение по умолчанию 'utf8'. Если persistent не задан, используется значение по умолчанию true. Если recursive не задан, используется значение по умолчанию false.

listener: WatchListener<string>
необязательный

Тип возвращаемого значения

FSWatcher

Перегрузка 3

watch(
filename: PathLike,
options: WatchOptions | string,
listener?: WatchListener<string | Buffer>,
): FSWatcher

Отслеживает изменения в filename, где filename является файлом или каталогом, и возвращает FSWatcher.

Параметры

filename: PathLike

Путь к файлу или каталогу. Если указан URL, он должен использовать протокол file:.

options: WatchOptions | string

Кодировка имени файла, передаваемого обработчику, или объект, в котором можно указать параметры encoding, persistent и recursive. Если encoding не задан, используется значение по умолчанию 'utf8'. Если persistent не задан, используется значение по умолчанию true. Если recursive не задан, используется значение по умолчанию false.

listener: WatchListener<string | Buffer>
необязательный

Тип возвращаемого значения

FSWatcher

Перегрузка 4

watch(
filename: PathLike,
listener?: WatchListener<string>,
): FSWatcher

Отслеживает изменения в filename, где filename является файлом или каталогом, и возвращает FSWatcher.

Параметры

filename: PathLike

Путь к файлу или каталогу. Если указан URL, он должен использовать протокол file:.

listener: WatchListener<string>
необязательный

Тип возвращаемого значения

FSWatcher

function watchFile

Использование в Deno

import { watchFile } from "node:fs";

Перегрузка 1

watchFile(
filename: PathLike,
options: (WatchFileOptions & { bigint?: false | undefined; }) | undefined,
listener: StatsListener,
): StatWatcher

Отслеживает изменения в filename. Функция обратного вызова listener вызывается каждый раз при обращении к файлу.

Аргумент options можно опустить. Если он указан, это должен быть объект. Объект options может содержать логическое свойство с именем persistent, указывающее, должен ли процесс продолжать работу, пока отслеживаются файлы. В объекте options можно указать свойство interval, задающее периодичность опроса целевого объекта в миллисекундах.

Функция обратного вызова listener получает два аргумента: текущий объект stat и предыдущий объект stat:

import { watchFile } from 'node:fs';

watchFile('message.text', (curr, prev) => {
  console.log(`the current mtime is: ${curr.mtime}`);
  console.log(`the previous mtime was: ${prev.mtime}`);
});

Эти объекты stat являются экземплярами fs.Stat. Если параметр bigint имеет значение true, числовые значения в этих объектах представлены как BigInt.

Чтобы получать уведомления об изменении файла, а не только о доступе к нему, необходимо сравнивать curr.mtimeMs и prev.mtimeMs.

Если операция fs.watchFile завершается ошибкой ENOENT, обработчик вызывается один раз, а все поля обнуляются (или, для дат, устанавливаются в эпоху Unix). Если файл будет создан позднее, обработчик вызовется снова с последними объектами stat. Это изменение поведения появилось в версии v0.10.

Использование watch эффективнее, чем fs.watchFile и fs.unwatchFile. По возможности вместо fs.watchFile и fs.unwatchFile следует использовать fs.watch.

Если файл, отслеживаемый с помощью fs.watchFile(), исчезает, а затем появляется снова, содержимое previous во втором событии обратного вызова (повторное появление файла) будет таким же, как содержимое previous в первом событии обратного вызова (исчезновение файла).

Это происходит, когда:

  • файл удаляется, а затем восстанавливается
  • файл переименовывается, а затем переименовывается ещё раз, возвращая исходное имя

Параметры

filename: PathLike
options: (WatchFileOptions & { bigint?: false | undefined; }) | undefined
listener: StatsListener

Тип возвращаемого значения

StatWatcher

Перегрузка 2

watchFile(
filename: PathLike,
options: (WatchFileOptions & { bigint: true; }) | undefined,
listener: BigIntStatsListener,
): StatWatcher

Параметры

filename: PathLike
options: (WatchFileOptions & { bigint: true; }) | undefined
listener: BigIntStatsListener

Тип возвращаемого значения

StatWatcher

Перегрузка 3

watchFile(
filename: PathLike,
listener: StatsListener,
): StatWatcher

Отслеживает изменения в filename. Функция обратного вызова listener вызывается каждый раз при обращении к файлу.

Параметры

filename: PathLike

Путь к файлу или каталогу. Если указан URL, он должен использовать протокол file:.

listener: StatsListener

Тип возвращаемого значения

StatWatcher

функция write

Использование в Deno

import { write } from "node:fs";

Перегрузка 1

write<TBuffer extends ArrayBufferView>(
fd: number,
buffer: TBuffer,
offset:
number
| undefined
| null
,
length:
number
| undefined
| null
,
position:
number
| undefined
| null
,
callback: (
err: ErrnoException | null,
written: number,
buffer: TBuffer,
) => void
,
): void

Записывает buffer в файл, указанный в fd.

offset определяет часть буфера, которую нужно записать, а length — целое число, указывающее количество байтов для записи.

position обозначает смещение от начала файла, по которому следует записать эти данные. Если typeof position !== 'number', данные будут записаны в текущую позицию. См. pwrite(2).

Функция обратного вызова получит три аргумента (err, bytesWritten, buffer), где bytesWritten указывает, сколько байтов было записано из buffer.

При вызове этой функции в виде версии с суффиксом util.promisify() она возвращает промис с Object и свойствами bytesWritten и buffer.

Небезопасно использовать fs.write() несколько раз для одного файла, не дожидаясь выполнения функции обратного вызова. В этом случае рекомендуется использовать createWriteStream.

В Linux позиционная запись не работает, если файл открыт в режиме добавления. Ядро игнорирует аргумент позиции и всегда добавляет данные в конец файла.

Параметры типа

TBuffer extends ArrayBufferView

Параметры

fd: number
buffer: TBuffer
offset:
number
| undefined
| null
= 0
необязательный
length:
number
| undefined
| null
= buffer.byteLength - offset
необязательный
position:
number
| undefined
| null
= 'null'
необязательный
callback: (
err: ErrnoException | null,
written: number,
buffer: TBuffer,
) => void

Тип возвращаемого значения

void

Перегрузка 2

write<TBuffer extends ArrayBufferView>(
fd: number,
buffer: TBuffer,
offset:
number
| undefined
| null
,
length:
number
| undefined
| null
,
callback: (
err: ErrnoException | null,
written: number,
buffer: TBuffer,
) => void
,
): void

Асинхронно записывает buffer в файл, на который указывает предоставленный файловый дескриптор.

Параметры типа

TBuffer extends ArrayBufferView

Параметры

fd: number

Файловый дескриптор.

buffer: TBuffer
offset:
number
| undefined
| null

Часть буфера, которую нужно записать. Если не указано, по умолчанию используется 0.

length:
number
| undefined
| null

Количество байтов для записи. Если не указано, по умолчанию используется buffer.length - offset.

callback: (
err: ErrnoException | null,
written: number,
buffer: TBuffer,
) => void

Тип возвращаемого значения

void

Перегрузка 3

write<TBuffer extends ArrayBufferView>(
fd: number,
buffer: TBuffer,
offset:
number
| undefined
| null
,
callback: (
err: ErrnoException | null,
written: number,
buffer: TBuffer,
) => void
,
): void

Асинхронно записывает buffer в файл, на который указывает предоставленный файловый дескриптор.

Параметры типа

TBuffer extends ArrayBufferView

Параметры

fd: number

Файловый дескриптор.

buffer: TBuffer
offset:
number
| undefined
| null

Часть буфера, которую нужно записать. Если не указано, по умолчанию используется 0.

callback: (
err: ErrnoException | null,
written: number,
buffer: TBuffer,
) => void

Тип возвращаемого значения

void

Перегрузка 4

write<TBuffer extends ArrayBufferView>(
fd: number,
buffer: TBuffer,
callback: (
err: ErrnoException | null,
written: number,
buffer: TBuffer,
) => void
,
): void

Асинхронно записывает buffer в файл, на который указывает предоставленный файловый дескриптор.

Параметры типа

TBuffer extends ArrayBufferView

Параметры

fd: number

Файловый дескриптор.

buffer: TBuffer
callback: (
err: ErrnoException | null,
written: number,
buffer: TBuffer,
) => void

Тип возвращаемого значения

void

Перегрузка 5

write(
fd: number,
string: string,
position:
number
| undefined
| null
,
encoding:
BufferEncoding
| undefined
| null
,
callback: (
err: ErrnoException | null,
written: number,
str: string,
) => void
,
): void

Асинхронно записывает string в файл, на который указывает предоставленный файловый дескриптор.

Параметры

fd: number

Файловый дескриптор.

string: string

Строка для записи.

position:
number
| undefined
| null

Смещение от начала файла, по которому следует записать эти данные. Если не указано, по умолчанию используется текущая позиция.

encoding:
BufferEncoding
| undefined
| null

Ожидаемая кодировка строки.

callback: (
err: ErrnoException | null,
written: number,
str: string,
) => void

Тип возвращаемого значения

void

Перегрузка 6

write(
fd: number,
string: string,
position:
number
| undefined
| null
,
callback: (
err: ErrnoException | null,
written: number,
str: string,
) => void
,
): void

Асинхронно записывает string в файл, на который указывает предоставленный файловый дескриптор.

Параметры

fd: number

Файловый дескриптор.

string: string

Строка для записи.

position:
number
| undefined
| null

Смещение от начала файла, по которому следует записать эти данные. Если не указано, по умолчанию используется текущая позиция.

callback: (
err: ErrnoException | null,
written: number,
str: string,
) => void

Тип возвращаемого значения

void

Перегрузка 7

write(
fd: number,
string: string,
callback: (
err: ErrnoException | null,
written: number,
str: string,
) => void
,
): void

Асинхронно записывает string в файл, на который указывает предоставленный файловый дескриптор.

Параметры

fd: number

Файловый дескриптор.

string: string

Строка для записи.

callback: (
err: ErrnoException | null,
written: number,
str: string,
) => void

Тип возвращаемого значения

void

функция writeFile

Использование в Deno

import { writeFile } from "node:fs";

Перегрузка 1

writeFile(
file: PathOrFileDescriptor,
data: string | ArrayBufferView,
options: WriteFileOptions,
callback: NoParamCallback,
): void
Совместимость с Deno

Отсутствуют кодировки utf16le, latin1 и ucs2.

Если file — это имя файла, асинхронно записывает данные в файл, заменяя его, если он уже существует. data может быть строкой или буфером.

Если file — это файловый дескриптор, поведение аналогично непосредственному вызову fs.write() (это рекомендуемый способ). См. примечания ниже об использовании файлового дескриптора.

Параметр encoding игнорируется, если data является буфером.

Параметр mode влияет только на вновь созданный файл. Подробнее см. в описании open.

import { writeFile } from 'node:fs';
import { Buffer } from 'node:buffer';

const data = new Uint8Array(Buffer.from('Hello Node.js'));
writeFile('message.txt', data, (err) => {
  if (err) throw err;
  console.log('The file has been saved!');
});

Если options — это строка, она задаёт кодировку:

import { writeFile } from 'node:fs';

writeFile('message.txt', 'Hello Node.js', 'utf8', callback);

Небезопасно использовать fs.writeFile() несколько раз для одного файла, не дожидаясь выполнения функции обратного вызова. В этом случае рекомендуется использовать createWriteStream.

Как и fs.readFile, fs.writeFile — это вспомогательный метод, который выполняет несколько вызовов write для записи переданного ему буфера. Для кода, чувствительного к производительности, рассмотрите возможность использования createWriteStream.

Для отмены fs.writeFile() можно использовать AbortSignal. Отмена выполняется «по возможности», и некоторые данные, вероятно, всё же будут записаны.

import { writeFile } from 'node:fs';
import { Buffer } from 'node:buffer';

const controller = new AbortController();
const { signal } = controller;
const data = new Uint8Array(Buffer.from('Hello Node.js'));
writeFile('message.txt', data, { signal }, (err) => {
  // When a request is aborted - the callback is called with an AbortError
});
// When the request should be aborted
controller.abort();

Прерывание выполняющегося запроса не прерывает отдельные запросы операционной системы, а отменяет внутреннюю буферизацию, выполняемую fs.writeFile.

Параметры

file: PathOrFileDescriptor

имя файла или файловый дескриптор

data: string | ArrayBufferView
options: WriteFileOptions
callback: NoParamCallback

Тип возвращаемого значения

void

Перегрузка 2

writeFile(
path: PathOrFileDescriptor,
data: string | ArrayBufferView,
callback: NoParamCallback,
): void
Совместимость с Deno

Отсутствуют кодировки utf16le, latin1 и ucs2.

Асинхронно записывает данные в файл, заменяя его, если он уже существует.

Параметры

path: PathOrFileDescriptor

Путь к файлу. Если указан URL, он должен использовать протокол file:. Если указан файловый дескриптор, базовый файл не будет закрыт автоматически.

data: string | ArrayBufferView

Данные для записи. Если передано значение, отличное от Buffer или Uint8Array, оно будет приведено к строке.

callback: NoParamCallback

Тип возвращаемого значения

void

функция writeFileSync

Использование в Deno

import { writeFileSync } from "node:fs";
writeFileSync(
file: PathOrFileDescriptor,
data: string | ArrayBufferView,
options?: WriteFileOptions,
): void
Совместимость с Deno

Отсутствуют кодировки utf16le, latin1 и ucs2.

Возвращает undefined.

Параметр mode влияет только на вновь созданный файл. Подробнее см. в описании open.

Подробные сведения см. в документации по асинхронной версии этого API: writeFile.

Параметры

file: PathOrFileDescriptor

имя файла или файловый дескриптор

data: string | ArrayBufferView
options: WriteFileOptions
необязательный

Тип возвращаемого значения

void

функция writeSync

Использование в Deno

import { writeSync } from "node:fs";

Перегрузка 1

writeSync(
fd: number,
buffer: ArrayBufferView,
offset?: number | null,
length?: number | null,
position?: number | null,
): number

Подробные сведения см. в документации по асинхронной версии этого API: write.

Параметры

fd: number
buffer: ArrayBufferView
offset: number | null = 0
необязательный
length: number | null = buffer.byteLength - offset
необязательный
position: number | null = 'null'
необязательный

Тип возвращаемого значения

number

Количество записанных байтов.

Перегрузка 2

writeSync(
fd: number,
string: string,
position?: number | null,
encoding?: BufferEncoding | null,
): number

Синхронно записывает string в файл, на который указывает предоставленный файловый дескриптор, и возвращает количество записанных байтов.

Параметры

fd: number

Файловый дескриптор.

string: string

Строка для записи.

position: number | null
необязательный

Смещение от начала файла, по которому следует записать эти данные. Если не указано, по умолчанию используется текущая позиция.

encoding: BufferEncoding | null
необязательный

Ожидаемая кодировка строки.

Тип возвращаемого значения

number

функция writev

Использование в Deno

import { writev } from "node:fs";

Перегрузка 1

writev(
fd: number,
buffers: readonly ArrayBufferView[],
cb: (
err: ErrnoException | null,
bytesWritten: number,
buffers: ArrayBufferView[],
) => void
,
): void

Записывает массив ArrayBufferViewов в файл, указанный в fd, с помощью writev().

position — это смещение от начала файла, по которому следует записать эти данные. Если typeof position !== 'number', данные будут записаны в текущую позицию.

В функцию обратного вызова будут переданы три аргумента: err, bytesWritten и buffers. bytesWritten — это количество байтов, записанных из buffers.

Если этот метод вызывается с util.promisify(), он возвращает промис с объектом Object, содержащим свойства bytesWritten и buffers.

Небезопасно вызывать fs.writev() несколько раз для одного и того же файла, не дождавшись выполнения функции обратного вызова. Для этого случая используйте createWriteStream.

В Linux позиционная запись не работает, если файл открыт в режиме добавления. Ядро игнорирует аргумент позиции и всегда добавляет данные в конец файла.

Параметры

fd: number
buffers: readonly ArrayBufferView[]
cb: (
err: ErrnoException | null,
bytesWritten: number,
buffers: ArrayBufferView[],
) => void

Тип возвращаемого значения

void

Перегрузка 2

writev(
fd: number,
buffers: readonly ArrayBufferView[],
position: number | null,
cb: (
err: ErrnoException | null,
bytesWritten: number,
buffers: ArrayBufferView[],
) => void
,
): void

Параметры

fd: number
buffers: readonly ArrayBufferView[]
position: number | null
cb: (
err: ErrnoException | null,
bytesWritten: number,
buffers: ArrayBufferView[],
) => void

Тип возвращаемого значения

void

функция writevSync

Использование в Deno

import { writevSync } from "node:fs";
writevSync(
fd: number,
buffers: readonly ArrayBufferView[],
position?: number,
): number

Подробную информацию см. в документации асинхронной версии этого API: writev.

Параметры

fd: number
buffers: readonly ArrayBufferView[]
position: number = 'null'
необязательный

Тип возвращаемого значения

number

Количество записанных байтов.


функция exists

Использование в Deno

import { exists } from "node:fs";
exists(
path: PathLike,
callback: (exists: boolean) => void,
): void
Устарело

Проверяет существование указанного пути в файловой системе. Затем вызывает аргумент callback со значением true или false:

import { exists } from 'node:fs';

exists('/etc/passwd', (e) => {
  console.log(e ? 'it exists' : 'no passwd!');
});

Параметры этой функции обратного вызова не соответствуют параметрам других функций обратного вызова Node.js. Обычно первым параметром функции обратного вызова Node.js является параметр err, за которым могут следовать другие параметры. Функция обратного вызова fs.exists() имеет только один логический параметр. Это одна из причин, по которым рекомендуется использовать fs.access() вместо fs.exists().

Не рекомендуется использовать fs.exists() для проверки существования файла перед вызовом fs.open(), fs.readFile() или fs.writeFile(). Это приводит к состоянию гонки, поскольку другие процессы могут изменить состояние файла между двумя вызовами. Вместо этого пользовательский код должен напрямую открыть, прочитать или записать файл и обработать ошибку, возникающую, если файл не существует.

запись (НЕ РЕКОМЕНДУЕТСЯ)

import { exists, open, close } from 'node:fs';

exists('myfile', (e) => {
  if (e) {
    console.error('myfile already exists');
  } else {
    open('myfile', 'wx', (err, fd) => {
      if (err) throw err;

      try {
        writeMyData(fd);
      } finally {
        close(fd, (err) => {
          if (err) throw err;
        });
      }
    });
  }
});

запись (РЕКОМЕНДУЕТСЯ)

import { open, close } from 'node:fs';
open('myfile', 'wx', (err, fd) => {
  if (err) {
    if (err.code === 'EEXIST') {
      console.error('myfile already exists');
      return;
    }

    throw err;
  }

  try {
    writeMyData(fd);
  } finally {
    close(fd, (err) => {
      if (err) throw err;
    });
  }
});

чтение (НЕ РЕКОМЕНДУЕТСЯ)

import { open, close, exists } from 'node:fs';

exists('myfile', (e) => {
  if (e) {
    open('myfile', 'r', (err, fd) => {
      if (err) throw err;

      try {
        readMyData(fd);
      } finally {
        close(fd, (err) => {
          if (err) throw err;
        });
      }
    });
  } else {
    console.error('myfile does not exist');
  }
});

чтение (РЕКОМЕНДУЕТСЯ)

import { open, close } from 'node:fs';

open('myfile', 'r', (err, fd) => {
  if (err) {
    if (err.code === 'ENOENT') {
      console.error('myfile does not exist');
      return;
    }

    throw err;
  }

  try {
    readMyData(fd);
  } finally {
    close(fd, (err) => {
      if (err) throw err;
    });
  }
});

В примерах, которые «не рекомендуются», сначала проверяется существование файла, а затем он используется; примеры, которые «рекомендуются», лучше, поскольку в них файл используется напрямую и обрабатываются возможные ошибки.

Как правило, проверяйте существование файла только в том случае, если файл не будет использоваться напрямую, например, когда его наличие служит сигналом от другого процесса.

Параметры

path: PathLike
callback: (exists: boolean) => void

Тип возвращаемого значения

void

функция lchmod

Использование в Deno

import { lchmod } from "node:fs";
lchmod(
path: PathLike,
mode: Mode,
callback: NoParamCallback,
): void
Устарело

Изменяет разрешения символической ссылки. В функцию обратного вызова завершения передаются только возможное исключение и никаких других аргументов.

Этот метод реализован только в macOS.

Дополнительную информацию см. в документации POSIX для lchmod(2).

Параметры

path: PathLike
mode: Mode
callback: NoParamCallback

Тип возвращаемого значения

void

функция lchmodSync

Использование в Deno

import { lchmodSync } from "node:fs";
lchmodSync(
path: PathLike,
mode: Mode,
): void
Устарело

Изменяет разрешения символической ссылки. Возвращает undefined.

Этот метод реализован только в macOS.

Дополнительную информацию см. в документации POSIX для lchmod(2).

Параметры

path: PathLike
mode: Mode

Тип возвращаемого значения

void

функция promises.lchmod

Использование в Deno

import { promises } from "node:fs";
const { lchmod } = promises;
lchmod(
path: PathLike,
mode: Mode,
): Promise<void>
Устарело
Совместимость с Deno

Реализация lchmod не реализована.

Изменяет разрешения символической ссылки.

Этот метод реализован только в macOS.

Параметры

path: PathLike
mode: Mode

Тип возвращаемого значения

Promise<void>

В случае успеха промис выполняется со значением undefined.


интерфейс _GlobOptions

Использование в Deno

import { type _GlobOptions } from "node:fs";

Параметры типа

T extends Dirent | string

Свойства

cwd: string | undefined
необязательный

Текущий рабочий каталог.

withFileTypes: boolean | undefined
необязательный

true, если glob должен возвращать пути как Direntы, и false в противном случае.

exclude:
((fileName: T) => boolean)
| readonly string[]
| undefined
необязательный

Функция для фильтрации файлов/каталогов или список шаблонов glob, которые следует исключить. Если задана функция, верните true, чтобы исключить элемент, или false, чтобы включить его.


интерфейс BigIntOptions

Использование в Deno

import { type BigIntOptions } from "node:fs";

Свойства

bigint: true

интерфейс BigIntStats

расширяет StatsBase<bigint>

Использование в Deno

import { type BigIntStats } from "node:fs";

Свойства

atimeNs: bigint
mtimeNs: bigint
ctimeNs: bigint
birthtimeNs: bigint

интерфейс BigIntStatsFs

расширяет StatsFsBase<bigint>

Использование в Deno

import { type BigIntStatsFs } from "node:fs";

интерфейс CopyOptions

расширяет CopyOptionsBase

Использование в Deno

import { type CopyOptions } from "node:fs";

Методы

filter(
source: string,
destination: string,
): boolean | Promise<boolean>
необязательный

Функция для фильтрации копируемых файлов/каталогов. Верните true, чтобы скопировать элемент, или false, чтобы пропустить его.


интерфейс CopyOptionsBase

Использование в Deno

import { type CopyOptionsBase } from "node:fs";

Свойства

dereference: boolean
необязательный

Разыменовывать символические ссылки

errorOnExist: boolean
необязательный

Если force имеет значение false и целевой объект существует, выбрасывается ошибка.

force: boolean
необязательный

Перезаписывать существующий файл или каталог. _Если для этого параметра задано значение false и целевой объект существует, операция копирования будет игнорировать ошибки. Чтобы изменить это поведение, используйте параметр errorOnExist.

mode: number
необязательный

Флаги для операции копирования. См. флаг mode функции copyFileSync()

preserveTimestamps: boolean
необязательный

Если true, метки времени из src будут сохранены.

recursive: boolean
необязательный

Рекурсивно копировать каталоги.

verbatimSymlinks: boolean
необязательный

Если значение равно true, разрешение путей для символических ссылок пропускается


интерфейс CopySyncOptions

расширяет CopyOptionsBase

Использование в Deno

import { type CopySyncOptions } from "node:fs";

Методы

filter(
source: string,
destination: string,
): boolean
необязательный

Функция для фильтрации копируемых файлов/каталогов. Верните true, чтобы скопировать элемент, или false, чтобы пропустить его.


интерфейс CreateReadStreamFSImplementation

расширяет FSImplementation

Использование в Deno

import { type CreateReadStreamFSImplementation } from "node:fs";

Свойства

read: (...args: any[]) => any

интерфейс CreateWriteStreamFSImplementation

extends FSImplementation

Использование в Deno

import { type CreateWriteStreamFSImplementation } from "node:fs";

Свойства

write: (...args: any[]) => any
writev: (...args: any[]) => any
необязательное

интерфейс FSImplementation

Использование в Deno

import { type FSImplementation } from "node:fs";

Свойства

open: (...args: any[]) => any
необязательное
close: (...args: any[]) => any
необязательное

интерфейс FSWatcher

extends EventEmitter

Использование в Deno

import { type FSWatcher } from "node:fs";

Методы

close(): void

Прекращает отслеживание изменений указанного fs.FSWatcher. После остановки объект fs.FSWatcher становится непригодным для использования.

ref(): this

При вызове запрашивает, чтобы цикл событий Node.js не завершался, пока активен объект fs.FSWatcher. Повторный вызов watcher.ref() не повлияет на результат.

По умолчанию для всех объектов fs.FSWatcher включена привязка («ref'ed»), поэтому обычно нет необходимости вызывать watcher.ref(), если ранее не вызывался watcher.unref().

unref(): this

При вызове активный объект fs.FSWatcher не будет требовать, чтобы цикл событий Node.js оставался активным. Если нет другой активности, поддерживающей работу цикла событий, процесс может завершиться до вызова обратного вызова объекта fs.FSWatcher. Повторный вызов watcher.unref() не повлияет на результат.

addListener(
event: string,
listener: (...args: any[]) => void,
): this

events.EventEmitter

  1. change
  2. close
  3. error
addListener(
event: "change",
listener: (
eventType: string,
filename: string | Buffer,
) => void
,
): this
addListener(
event: "close",
listener: () => void,
): this
addListener(
event: "error",
listener: (error: Error) => void,
): this
on(
event: string,
listener: (...args: any[]) => void,
): this
on(
event: "change",
listener: (
eventType: string,
filename: string | Buffer,
) => void
,
): this
on(
event: "close",
listener: () => void,
): this
on(
event: "error",
listener: (error: Error) => void,
): this
once(
event: string,
listener: (...args: any[]) => void,
): this
once(
event: "change",
listener: (
eventType: string,
filename: string | Buffer,
) => void
,
): this
once(
event: "close",
listener: () => void,
): this
once(
event: "error",
listener: (error: Error) => void,
): this
prependListener(
event: string,
listener: (...args: any[]) => void,
): this
prependListener(
event: "change",
listener: (
eventType: string,
filename: string | Buffer,
) => void
,
): this
prependListener(
event: "close",
listener: () => void,
): this
prependListener(
event: "error",
listener: (error: Error) => void,
): this
prependOnceListener(
event: string,
listener: (...args: any[]) => void,
): this
prependOnceListener(
event: "change",
listener: (
eventType: string,
filename: string | Buffer,
) => void
,
): this
prependOnceListener(
event: "close",
listener: () => void,
): this
prependOnceListener(
event: "error",
listener: (error: Error) => void,
): this

интерфейс GlobOptions

extends _GlobOptions<Dirent | string>

Использование в Deno

import { type GlobOptions } from "node:fs";

интерфейс GlobOptionsWithFileTypes

extends _GlobOptions<Dirent>

Использование в Deno

import { type GlobOptionsWithFileTypes } from "node:fs";

Свойства

withFileTypes: true

интерфейс GlobOptionsWithoutFileTypes

extends _GlobOptions<string>

Использование в Deno

import { type GlobOptionsWithoutFileTypes } from "node:fs";

Свойства

withFileTypes: false | undefined
необязательное

интерфейс MakeDirectoryOptions

Использование в Deno

import { type MakeDirectoryOptions } from "node:fs";

Свойства

recursive: boolean | undefined
необязательное

Указывает, следует ли создавать родительские папки. Если папка была создана, будет возвращён путь к первой созданной папке.

mode: Mode | undefined
необязательное

Режим доступа к файлу. Если передана строка, она разбирается как восьмеричное целое число. Если не указано


интерфейс ObjectEncodingOptions

Использование в Deno

import { type ObjectEncodingOptions } from "node:fs";

Свойства

encoding:
BufferEncoding
| null
| undefined
необязательное

интерфейс OpenAsBlobOptions

Использование в Deno

import { type OpenAsBlobOptions } from "node:fs";

Свойства

type: string | undefined
необязательное

Необязательный MIME-тип для объекта Blob.


интерфейс OpenDirOptions

Использование в Deno

import { type OpenDirOptions } from "node:fs";

Свойства

encoding: BufferEncoding | undefined
необязательное
bufferSize: number | undefined
необязательное

Количество записей каталога, буферизуемых внутри при чтении каталога. Более высокие значения повышают производительность, но увеличивают расход памяти.

recursive: boolean
необязательное

интерфейс promises.CreateReadStreamOptions

extends Abortable

Использование в Deno

import { type promises } from "node:fs";
type { CreateReadStreamOptions } = promises;

Свойства

encoding:
BufferEncoding
| null
| undefined
необязательное
autoClose: boolean | undefined
необязательное
emitClose: boolean | undefined
необязательное
start: number | undefined
необязательное
end: number | undefined
необязательное
highWaterMark: number | undefined
необязательное

интерфейс promises.CreateWriteStreamOptions

Использование в Deno

import { type promises } from "node:fs";
type { CreateWriteStreamOptions } = promises;

Свойства

encoding:
BufferEncoding
| null
| undefined
необязательное
autoClose: boolean | undefined
необязательное
emitClose: boolean | undefined
необязательное
start: number | undefined
необязательное
highWaterMark: number | undefined
необязательное
flush: boolean | undefined
необязательное

интерфейс promises.FileChangeInfo

Использование в Deno

import { type promises } from "node:fs";
type { FileChangeInfo } = promises;

Параметры типа

T extends string | Buffer

Свойства

eventType: WatchEventType
filename: T | null

интерфейс promises.FileHandle

Использование в Deno

import { type promises } from "node:fs";
type { FileHandle } = promises;

Свойства

fd: number
только для чтения

Числовой файловый дескриптор, управляемый объектом {FileHandle}.

Методы

appendFile(
data: string | Uint8Array,
options?:
(ObjectEncodingOptions & Abortable)
| BufferEncoding
| null
,
): Promise<void>

Псевдоним для filehandle.writeFile().

При работе с файловыми дескрипторами режим нельзя изменить по сравнению с тем, который был установлен с помощью fsPromises.open(). Поэтому этот метод эквивалентен filehandle.writeFile().

chown(
uid: number,
gid: number,
): Promise<void>

Изменяет владельца файла. Обёртка для chown(2).

chmod(mode: Mode): Promise<void>

Изменяет права доступа к файлу. См. chmod(2).

createReadStream(options?: CreateReadStreamOptions): ReadStream

В отличие от стандартного значения highWaterMark в 16 КиБ для stream.Readable, возвращаемый этим методом поток имеет стандартное значение highWaterMark, равное 64 КиБ.

options может содержать значения start и end, чтобы считывать диапазон байтов из файла, а не весь файл. И start, и end включительны и отсчитываются от 0; допустимые значения находятся в диапазоне [0, Number.MAX_SAFE_INTEGER]. Если start не задан или равен undefined, filehandle.createReadStream() считывает данные последовательно с текущей позиции в файле. encoding может принимать любое значение из числа допустимых для Buffer.

Если FileHandle указывает на символьное устройство, поддерживающее только блокирующее чтение (например, клавиатуру или звуковую карту), операции чтения не завершаются, пока данные не станут доступны. Это может помешать завершению процесса и естественному закрытию потока.

По умолчанию после уничтожения потока генерируется событие 'close'. Чтобы изменить это поведение, задайте для параметра emitClose значение false.

import { open } from 'node:fs/promises';

const fd = await open('/dev/input/event0');
// Create a stream from some character device.
const stream = fd.createReadStream();
setTimeout(() => {
  stream.close(); // This may not close the stream.
  // Artificially marking end-of-stream, as if the underlying resource had
  // indicated end-of-file by itself, allows the stream to close.
  // This does not cancel pending read operations, and if there is such an
  // operation, the process may still not be able to exit successfully
  // until it finishes.
  stream.push(null);
  stream.read(0);
}, 100);

Если autoClose имеет значение false, файловый дескриптор не будет закрыт, даже если произойдёт ошибка. Приложение должно самостоятельно закрыть его и убедиться, что утечки файловых дескрипторов не происходит. Если для autoClose задано значение true (поведение по умолчанию), при 'error' или 'end' файловый дескриптор будет закрыт автоматически.

Пример чтения последних 10 байтов файла длиной 100 байтов:

import { open } from 'node:fs/promises';

const fd = await open('sample.txt');
fd.createReadStream({ start: 90, end: 99 });
createWriteStream(options?: CreateWriteStreamOptions): WriteStream

options также может содержать параметр start, позволяющий записывать данные начиная с позиции, расположенной дальше начала файла. Допустимые значения находятся в диапазоне [0, Number.MAX_SAFE_INTEGER]. Чтобы изменить файл, а не заменить его, может потребоваться установить параметр flags open в значение r+ вместо значения по умолчанию r. encoding может принимать любое значение из числа допустимых для Buffer.

Если для autoClose задано значение true (поведение по умолчанию), при 'error' или 'finish' файловый дескриптор будет закрыт автоматически. Если autoClose имеет значение false, файловый дескриптор не будет закрыт, даже если произойдёт ошибка. Приложение должно самостоятельно закрыть его и убедиться, что утечки файловых дескрипторов не происходит.

По умолчанию после уничтожения потока генерируется событие 'close'. Чтобы изменить это поведение, задайте для параметра emitClose значение false.

datasync(): Promise<void>

Передаёт все текущие операции ввода-вывода, поставленные в очередь для файла, в состояние завершения синхронного ввода-вывода операционной системы. Подробности см. в документации POSIX для fdatasync(2).

В отличие от filehandle.sync этот метод не сбрасывает изменённые метаданные.

sync(): Promise<void>

Запрашивает сброс всех данных открытого файлового дескриптора на устройство хранения. Конкретная реализация зависит от операционной системы и устройства. Подробности см. в документации POSIX для fsync(2).

read<T extends ArrayBufferView>(
buffer: T,
offset?: number | null,
length?: number | null,
position?: number | null,
): Promise<FileReadResult<T>>

Считывает данные из файла и сохраняет их в указанном буфере.

Если файл не изменяется одновременно, конец файла достигается, когда количество прочитанных байтов равно нулю.

read<T extends ArrayBufferView = Buffer>(
buffer: T,
options?: FileReadOptions<T>,
): Promise<FileReadResult<T>>
read<T extends ArrayBufferView = Buffer>(options?: FileReadOptions<T>): Promise<FileReadResult<T>>
readableWebStream(options?: ReadableWebStreamOptions): ReadableStream

Возвращает ReadableStream, который можно использовать для чтения данных файла.

Метод вызовет ошибку, если его вызвать более одного раза или после закрытия либо начала закрытия FileHandle.

import {
  open,
} from 'node:fs/promises';

const file = await open('./some/file/to/read');

for await (const chunk of file.readableWebStream())
  console.log(chunk);

await file.close();

Хотя ReadableStream считает файл до конца, он не закрывает FileHandle автоматически. Пользовательский код должен по-прежнему вызывать метод fileHandle.close().

readFile(options?: { encoding?: null | undefined; flag?: OpenMode | undefined; } | null): Promise<Buffer>

Асинхронно считывает всё содержимое файла.

Если options — строка, она задаёт encoding.

FileHandle должен поддерживать чтение.

Если для файлового дескриптора выполнен один или несколько вызовов filehandle.read(), а затем вызов filehandle.readFile(), данные будут считаны с текущей позиции до конца файла. Чтение не всегда начинается с начала файла.

readFile(options: { encoding: BufferEncoding; flag?: OpenMode | undefined; } | BufferEncoding): Promise<string>

Асинхронно считывает всё содержимое файла. Файл в основе не будет закрыт автоматически. FileHandle должен быть открыт для чтения.

readFile(options?:
(ObjectEncodingOptions & { flag?: OpenMode | undefined; })
| BufferEncoding
| null
): Promise<string | Buffer>

Асинхронно считывает всё содержимое файла. Файл в основе не будет закрыт автоматически. FileHandle должен быть открыт для чтения.

readLines(options?: CreateReadStreamOptions): ReadlineInterface

Вспомогательный метод для создания интерфейса readline и потокового чтения файла. Параметры см. в filehandle.createReadStream().

import { open } from 'node:fs/promises';

const file = await open('./some/file/to/read');

for await (const line of file.readLines()) {
  console.log(line);
}
stat(opts?: StatOptions & { bigint?: false | undefined; }): Promise<Stats>
stat(opts: StatOptions & { bigint: true; }): Promise<BigIntStats>
stat(opts?: StatOptions): Promise<Stats | BigIntStats>
truncate(len?: number): Promise<void>

Усекает файл.

Если размер файла превышает len байтов, в файле останутся только первые len байтов.

В следующем примере в файле сохраняются только первые четыре байта:

import { open } from 'node:fs/promises';

let filehandle = null;
try {
  filehandle = await open('temp.txt', 'r+');
  await filehandle.truncate(4);
} finally {
  await filehandle?.close();
}

Если размер файла до этого был меньше len байтов, он увеличивается, а добавленная часть заполняется нулевыми байтами ('\0'):

Если len отрицательно, будет использовано 0.

utimes(
atime: TimeLike,
mtime: TimeLike,
): Promise<void>

Изменяет временные метки файловой системы объекта, на который ссылается FileHandle, а в случае успеха выполняет обещание без аргументов.

writeFile(
data: string | Uint8Array,
options?:
(ObjectEncodingOptions & Abortable)
| BufferEncoding
| null
,
): Promise<void>

Асинхронно записывает данные в файл, заменяя его, если он уже существует. data может быть строкой, буфером, объектом AsyncIterable или объектом Iterable. В случае успеха обещание выполняется без аргументов.

Если options — строка, она задаёт encoding.

FileHandle должен поддерживать запись.

Небезопасно вызывать filehandle.writeFile() несколько раз для одного и того же файла, не дождавшись выполнения (или отклонения) обещания.

Если для файлового дескриптора выполнен один или несколько вызовов filehandle.write(), а затем вызов filehandle.writeFile(), данные будут записаны с текущей позиции до конца файла. Запись не всегда начинается с начала файла.

write<TBuffer extends Uint8Array>(
buffer: TBuffer,
offset?: number | null,
length?: number | null,
position?: number | null,
): Promise<{ bytesWritten: number; buffer: TBuffer; }>

Записывает buffer в файл.

Обещание выполняется с объектом, содержащим два свойства:

Небезопасно вызывать filehandle.write() несколько раз для одного и того же файла, не дождавшись выполнения (или отклонения) обещания. В этом случае используйте filehandle.createWriteStream().

В Linux позиционная запись не работает, если файл открыт в режиме добавления. Ядро игнорирует аргумент позиции и всегда добавляет данные в конец файла.

write<TBuffer extends Uint8Array>(
buffer: TBuffer,
options?: { offset?: number; length?: number; position?: number; },
): Promise<{ bytesWritten: number; buffer: TBuffer; }>
write(
data: string,
position?: number | null,
encoding?: BufferEncoding | null,
): Promise<{ bytesWritten: number; buffer: string; }>
writev(
buffers: readonly ArrayBufferView[],
position?: number,
): Promise<WriteVResult>

Записывает в файл массив элементов ArrayBufferView.

Обещание выполняется с объектом, содержащим два свойства:

Небезопасно вызывать writev() несколько раз для одного и того же файла, не дождавшись выполнения (или отклонения) обещания.

В Linux позиционная запись не работает, если файл открыт в режиме добавления. Ядро игнорирует аргумент позиции и всегда добавляет данные в конец файла.

readv(
buffers: readonly ArrayBufferView[],
position?: number,
): Promise<ReadVResult>

Считывает данные из файла и записывает их в массив элементов ArrayBufferView.

close(): Promise<void>

Закрывает файловый дескриптор после завершения всех ожидающих операций с ним.

import { open } from 'node:fs/promises';

let filehandle;
try {
  filehandle = await open('thefile.txt', 'r');
} finally {
  await filehandle?.close();
}
[[Symbol.asyncDispose]](): Promise<void>

Псевдоним для FileHandle.close().


интерфейс promises.FileReadOptions

Использование в Deno

import { type promises } from "node:fs";
type { FileReadOptions } = promises;

Параметры типа

T extends ArrayBufferView = Buffer

Свойства

buffer: T
необязательное
offset: number | null
необязательное
length: number | null
необязательное
position: number | null
необязательное

интерфейс promises.FileReadResult

Использование в Deno

import { type promises } from "node:fs";
type { FileReadResult } = promises;

Параметры типа

T extends ArrayBufferView

Свойства

bytesRead: number
buffer: T

интерфейс promises.FlagAndOpenMode

Использование в Deno

import { type promises } from "node:fs";
type { FlagAndOpenMode } = promises;

Свойства

mode: Mode | undefined
необязательное
flag: OpenMode | undefined
необязательное

интерфейс promises.ReadableWebStreamOptions

Использование в Deno

import { type promises } from "node:fs";
type { ReadableWebStreamOptions } = promises;

Свойства

type: "bytes" | undefined
необязательное

Открывать обычный поток или поток 'bytes'.


интерфейс ReadAsyncOptions

расширяет ReadSyncOptions

Использование в Deno

import { type ReadAsyncOptions } from "node:fs";

Параметры типа

TBuffer extends ArrayBufferView

Свойства

buffer: TBuffer
необязательное

интерфейс ReadStreamOptions

расширяет StreamOptions

Использование в Deno

import { type ReadStreamOptions } from "node:fs";

Свойства

fs:
CreateReadStreamFSImplementation
| null
| undefined
необязательное
end: number | undefined
необязательное

интерфейс ReadSyncOptions

Использование в Deno

import { type ReadSyncOptions } from "node:fs";

Свойства

offset: number | undefined
необязательное
length: number | undefined
необязательное
position:
ReadPosition
| null
| undefined
необязательное

интерфейс ReadVResult

Использование в Deno

import { type ReadVResult } from "node:fs";

Свойства

bytesRead: number
buffers: ArrayBufferView[]

интерфейс RmDirOptions

Использование в Deno

import { type RmDirOptions } from "node:fs";

Свойства

maxRetries: number | undefined
необязательное

Если возникает ошибка EBUSY, EMFILE, ENFILE, ENOTEMPTY или EPERM, Node.js повторит операцию, увеличивая время ожидания при линейном экспоненциальном откате на retryDelay мс при каждой попытке. Этот параметр задаёт количество повторных попыток. Параметр игнорируется, если параметр recursive не имеет значения true.

recursive: boolean | undefined
устаревшее
необязательное
retryDelay: number | undefined
необязательное

Время ожидания между повторными попытками в миллисекундах. Этот параметр игнорируется, если параметр recursive не имеет значения true.


интерфейс RmOptions

Использование в Deno

import { type RmOptions } from "node:fs";

Свойства

force: boolean | undefined
необязательное

Если true, исключения будут игнорироваться, если path не существует.

maxRetries: number | undefined
необязательное

Если возникает ошибка EBUSY, EMFILE, ENFILE, ENOTEMPTY или EPERM, Node.js повторит операцию, увеличивая время ожидания при линейном экспоненциальном откате на retryDelay мс при каждой попытке. Этот параметр задаёт количество повторных попыток. Параметр игнорируется, если параметр recursive не имеет значения true.

recursive: boolean | undefined
необязательное

Если true, выполните рекурсивное удаление каталога. В рекурсивном режиме при сбое операции повторяются.

retryDelay: number | undefined
необязательное

Время ожидания между повторными попытками в миллисекундах. Этот параметр игнорируется, если параметр recursive не имеет значения true.


интерфейс StatFsOptions

Использование в Deno

import { type StatFsOptions } from "node:fs";

Свойства

bigint: boolean | undefined
необязательное

интерфейс StatOptions

Использование в Deno

import { type StatOptions } from "node:fs";

Свойства

bigint: boolean | undefined
необязательное

класс Stats

Использование в Deno

import { Stats } from "node:fs";

Объект fs.Stats содержит информацию о файле.

Объекты, возвращаемые методами stat, lstat, fstat и их синхронными аналогами, имеют этот тип. Если bigint в options, переданном этим методам, имеет значение true, числовые значения будут представлены типом bigint вместо number, а объект будет содержать дополнительные свойства с наносекундной точностью и суффиксом Ns. Объекты Stat не следует создавать напрямую с помощью ключевого слова new.

Stats {
  dev: 2114,
  ino: 48064969,
  mode: 33188,
  nlink: 1,
  uid: 85,
  gid: 100,
  rdev: 0,
  size: 527,
  blksize: 4096,
  blocks: 8,
  atimeMs: 1318289051000.1,
  mtimeMs: 1318289051000.1,
  ctimeMs: 1318289051000.1,
  birthtimeMs: 1318289051000.1,
  atime: Mon, 10 Oct 2011 23:24:11 GMT,
  mtime: Mon, 10 Oct 2011 23:24:11 GMT,
  ctime: Mon, 10 Oct 2011 23:24:11 GMT,
  birthtime: Mon, 10 Oct 2011 23:24:11 GMT }

Версия bigint:

BigIntStats {
  dev: 2114n,
  ino: 48064969n,
  mode: 33188n,
  nlink: 1n,
  uid: 85n,
  gid: 100n,
  rdev: 0n,
  size: 527n,
  blksize: 4096n,
  blocks: 8n,
  atimeMs: 1318289051000n,
  mtimeMs: 1318289051000n,
  ctimeMs: 1318289051000n,
  birthtimeMs: 1318289051000n,
  atimeNs: 1318289051000000000n,
  mtimeNs: 1318289051000000000n,
  ctimeNs: 1318289051000000000n,
  birthtimeNs: 1318289051000000000n,
  atime: Mon, 10 Oct 2011 23:24:11 GMT,
  mtime: Mon, 10 Oct 2011 23:24:11 GMT,
  ctime: Mon, 10 Oct 2011 23:24:11 GMT,
  birthtime: Mon, 10 Oct 2011 23:24:11 GMT }

Конструкторы

Stats()
новый

интерфейс Stats

расширяет StatsBase<number>

интерфейс StatsBase

Использование в Deno

import { type StatsBase } from "node:fs";

Параметры типа

T

Свойства

dev: T
ino: T
mode: T
nlink: T
uid: T
gid: T
rdev: T
size: T
blksize: T
blocks: T
atimeMs: T
mtimeMs: T
ctimeMs: T
birthtimeMs: T
atime: Date
mtime: Date
ctime: Date
birthtime: Date

Методы

isFile(): boolean
isDirectory(): boolean
isBlockDevice(): boolean
isCharacterDevice(): boolean
isSymbolicLink(): boolean
isFIFO(): boolean
isSocket(): boolean

класс StatsFs

Использование в Deno

import { StatsFs } from "node:fs";

Предоставляет информацию о смонтированной файловой системе.

Объекты, возвращаемые методом statfs и его синхронным аналогом, имеют этот тип. Если bigint в options, переданном этим методам, имеет значение true, числовые значения будут представлены типом bigint вместо number.

StatFs {
  type: 1397114950,
  bsize: 4096,
  blocks: 121938943,
  bfree: 61058895,
  bavail: 61058895,
  files: 999,
  ffree: 1000000
}

Версия bigint:

StatFs {
  type: 1397114950n,
  bsize: 4096n,
  blocks: 121938943n,
  bfree: 61058895n,
  bavail: 61058895n,
  files: 999n,
  ffree: 1000000n
}

интерфейс StatsFs

расширяет StatsFsBase<number>

интерфейс StatsFsBase

Использование в Deno

import { type StatsFsBase } from "node:fs";

Параметры типа

T

Свойства

type: T

Тип файловой системы.

bsize: T

Оптимальный размер блока передачи.

blocks: T

Общее количество блоков данных в файловой системе.

bfree: T

Количество свободных блоков в файловой системе.

bavail: T

Количество блоков, доступных непривилегированным пользователям

files: T

Общее количество файловых узлов в файловой системе.

ffree: T

Количество свободных файловых узлов в файловой системе.


интерфейс StatSyncFn

расширяет Function

Использование в Deno

import { type StatSyncFn } from "node:fs";

Сигнатуры вызова

(
path: PathLike,
options?: undefined,
): Stats
(
path: PathLike,
options?: StatSyncOptions & { bigint?: false | undefined; throwIfNoEntry: false; },
): Stats | undefined
(
path: PathLike,
options: StatSyncOptions & { bigint: true; throwIfNoEntry: false; },
): BigIntStats | undefined
(
path: PathLike,
options?: StatSyncOptions & { bigint?: false | undefined; },
): Stats
(
path: PathLike,
options: StatSyncOptions & { bigint: true; },
): BigIntStats
(
path: PathLike,
options: StatSyncOptions & { bigint: boolean; throwIfNoEntry?: false | undefined; },
): Stats | BigIntStats
(
path: PathLike,
options?: StatSyncOptions,
):
Stats
| BigIntStats
| undefined

интерфейс StatSyncOptions

расширяет StatOptions

Использование в Deno

import { type StatSyncOptions } from "node:fs";

Свойства

throwIfNoEntry: boolean | undefined
необязательное

интерфейс StatWatcher

расширяет EventEmitter

Использование в Deno

import { type StatWatcher } from "node:fs";

Класс: fs.StatWatcher

Методы

ref(): this

При вызове этот метод не позволяет циклу событий Node.js завершиться, пока активен fs.StatWatcher. Повторный вызов watcher.ref() не повлияет на результат.

По умолчанию для всех объектов fs.StatWatcher включён режим «ref», поэтому обычно вызывать watcher.ref() не требуется, если ранее не вызывался watcher.unref().

unref(): this

При вызове активный объект fs.StatWatcher не будет требовать, чтобы цикл событий Node.js оставался активным. Если нет другой активности, поддерживающей работу цикла событий, процесс может завершиться до вызова обратного вызова объекта fs.StatWatcher. Повторный вызов watcher.unref() не повлияет на результат.


интерфейс StreamOptions

Использование в Deno

import { type StreamOptions } from "node:fs";

Свойства

flags: string | undefined
необязательное
encoding: BufferEncoding | undefined
необязательное
fd:
number
| promises.FileHandle
| undefined
необязательное
mode: number | undefined
необязательное
autoClose: boolean | undefined
необязательное
emitClose: boolean | undefined
необязательное
start: number | undefined
необязательное
signal:
AbortSignal
| null
| undefined
необязательное
highWaterMark: number | undefined
необязательное

интерфейс WatchFileOptions

Использование в Deno

import { type WatchFileOptions } from "node:fs";

Отслеживает изменения в filename. Функция обратного вызова listener вызывается каждый раз при обращении к файлу.

Аргумент options можно опустить. Если он указан, это должен быть объект. Объект options может содержать логическое свойство с именем persistent, указывающее, должен ли процесс продолжать работу, пока отслеживаются файлы. Объект options может содержать свойство interval, указывающее частоту опроса целевого объекта в миллисекундах.

Функция listener получает два аргумента: текущий объект stat и предыдущий объект stat:

import { watchFile } from 'node:fs';

watchFile('message.text', (curr, prev) => {
  console.log(`the current mtime is: ${curr.mtime}`);
  console.log(`the previous mtime was: ${prev.mtime}`);
});

Эти объекты stat являются экземплярами fs.Stat. Если параметр bigint имеет значение true, числовые значения в этих объектах задаются как BigInts.

Чтобы получать уведомления об изменении файла, а не только о доступе к нему, необходимо сравнивать curr.mtimeMs и prev.mtimeMs.

Если операция fs.watchFile завершается ошибкой ENOENT, она однократно вызывает обработчик, обнуляя все поля (а для дат указывая эпоху Unix). Если файл будет создан позднее, обработчик будет вызван снова с последними объектами stat. Это поведение изменилось начиная с версии 0.10.

Использование watch эффективнее, чем fs.watchFile и fs.unwatchFile. По возможности вместо fs.watchFile и fs.unwatchFile следует использовать fs.watch.

Если файл, отслеживаемый с помощью fs.watchFile(), исчезает и появляется снова, содержимое previous во втором событии обратного вызова (повторное появление файла) будет таким же, как содержимое previous в первом событии обратного вызова (исчезновение файла).

Это происходит, когда:

  • файл удаляется, а затем восстанавливается
  • файл переименовывается, а затем ему возвращают исходное имя

Свойства

bigint: boolean | undefined
необязательно
persistent: boolean | undefined
необязательно
interval: number | undefined
необязательно

интерфейс WatchOptions

расширяет Abortable

Использование в Deno

import { type WatchOptions } from "node:fs";

Свойства

encoding:
BufferEncoding
| "buffer"
| undefined
необязательно
persistent: boolean | undefined
необязательно
recursive: boolean | undefined
необязательно

интерфейс WriteStreamOptions

расширяет StreamOptions

Использование в Deno

import { type WriteStreamOptions } from "node:fs";

Свойства

fs:
CreateWriteStreamFSImplementation
| null
| undefined
необязательно
flush: boolean | undefined
необязательно

интерфейс WriteVResult

Использование в Deno

import { type WriteVResult } from "node:fs";

Свойства

bytesWritten: number
buffers: ArrayBufferView[]

пространство имён constants

Использование в Deno

import { constants } from "node:fs";

Переменные

constants.COPYFILE_EXCL

Константа для fs.copyFile. Флаг, указывающий, что файл назначения не следует перезаписывать, если он уже существует.

constants.COPYFILE_FICLONE

Константа для fs.copyFile. Операция копирования попытается создать reflink с копированием при записи. Если базовая платформа не поддерживает копирование при записи, используется резервный механизм копирования.

constants.COPYFILE_FICLONE_FORCE

Константа для fs.copyFile. Операция копирования попытается создать reflink с копированием при записи. Если базовая платформа не поддерживает копирование при записи, операция завершится ошибкой.

constants.F_OK

Константа для fs.access(). Файл виден вызывающему процессу.

constants.O_APPEND

Константа для fs.open(). Флаг, указывающий, что данные будут добавляться в конец файла.

constants.O_CREAT

Константа для fs.open(). Флаг, указывающий, что файл следует создать, если он ещё не существует.

constants.O_DIRECT

Константа для fs.open(). При установке этого флага предпринимается попытка свести к минимуму влияние кэширования на операции ввода-вывода файлов.

constants.O_DIRECTORY

Константа для fs.open(). Флаг, указывающий, что открытие должно завершиться ошибкой, если путь не является каталогом.

constants.O_DSYNC

Константа для fs.open(). Флаг, указывающий, что файл открыт для синхронного ввода-вывода, при котором операции записи ожидают обеспечения целостности данных.

constants.O_EXCL

Константа для fs.open(). Флаг, указывающий, что открытие файла должно завершиться ошибкой, если установлен флаг O_CREAT и файл уже существует.

constants.O_NOATIME

Константа для fs.open(). Флаг, указывающий, что операции чтения файловой системы больше не будут обновлять сведения atime, связанные с файлом. Этот флаг доступен только в операционных системах Linux.

constants.O_NOCTTY

Константа для fs.open(). Флаг, указывающий, что если путь указывает на терминальное устройство, его открытие не должно приводить к тому, что этот терминал станет управляющим терминалом процесса (если у процесса ещё нет управляющего терминала).

constants.O_NOFOLLOW

Константа для fs.open(). Флаг, указывающий, что открытие должно завершиться ошибкой, если путь является символической ссылкой.

constants.O_NONBLOCK

Константа для fs.open(). Флаг, указывающий, что файл следует открыть в неблокирующем режиме, если это возможно.

constants.O_RDONLY

Константа для fs.open(). Флаг, указывающий, что файл следует открыть только для чтения.

constants.O_RDWR

Константа для fs.open(). Флаг, указывающий, что файл следует открыть для чтения и записи.

constants.O_SYMLINK

Константа для fs.open(). Флаг, указывающий, что следует открыть саму символическую ссылку, а не ресурс, на который она указывает.

constants.O_SYNC

Константа для fs.open(). Флаг, указывающий, что файл открыт для синхронного ввода-вывода.

constants.O_TRUNC

Константа для fs.open(). Флаг, указывающий, что если файл существует и является обычным файлом, а открыть его для записи удалось, его размер должен быть усечён до нуля.

constants.O_WRONLY

Константа для fs.open(). Флаг, указывающий, что файл следует открыть только для записи.

constants.R_OK

Константа для fs.access(). Файл доступен вызывающему процессу для чтения.

constants.S_IFBLK

Константа для свойства mode объекта fs.Stats, используемая для определения типа файла. Константа типа файла для блочного устройства.

constants.S_IFCHR

Константа для свойства mode объекта fs.Stats, используемая для определения типа файла. Константа типа файла для символьного устройства.

constants.S_IFDIR

Константа для свойства mode объекта fs.Stats, используемая для определения типа файла. Константа типа файла для каталога.

constants.S_IFIFO

Константа для свойства mode объекта fs.Stats, используемая для определения типа файла. Константа типа файла для FIFO/канала.

constants.S_IFLNK

Константа для свойства mode объекта fs.Stats, используемая для определения типа файла. Константа типа файла для символической ссылки.

constants.S_IFMT

Константа для свойства mode объекта fs.Stats, используемая для определения типа файла. Битовая маска для извлечения кода типа файла.

constants.S_IFREG

Константа для свойства mode объекта fs.Stats, используемая для определения типа файла. Константа типа файла для обычного файла.

constants.S_IFSOCK

Константа для свойства mode объекта fs.Stats, используемая для определения типа файла. Константа типа файла для сокета.

constants.S_IRGRP

Константа для свойства mode объекта fs.Stats, используемая для определения разрешений доступа к файлу. Режим файла, указывающий на право чтения для группы.

constants.S_IROTH

Константа для свойства mode объекта fs.Stats, используемая для определения разрешений доступа к файлу. Режим файла, указывающий на право чтения для остальных пользователей.

constants.S_IRUSR

Константа для свойства mode объекта fs.Stats, используемая для определения разрешений доступа к файлу. Режим файла, указывающий на право чтения для владельца.

constants.S_IRWXG

Константа для свойства mode объекта fs.Stats, используемая для определения разрешений доступа к файлу. Режим файла, указывающий на права чтения, записи и выполнения для группы.

constants.S_IRWXO

Константа для свойства mode объекта fs.Stats, используемая для определения разрешений доступа к файлу. Режим файла, указывающий на права чтения, записи и выполнения для остальных пользователей.

constants.S_IRWXU

Константа для свойства mode объекта fs.Stats, используемая для определения разрешений доступа к файлу. Режим файла, указывающий на права чтения, записи и выполнения для владельца.

constants.S_IWGRP

Константа для свойства mode объекта fs.Stats, используемая для определения разрешений доступа к файлу. Режим файла, указывающий на право записи для группы.

constants.S_IWOTH

Константа для свойства mode объекта fs.Stats, используемая для определения разрешений доступа к файлу. Режим файла, указывающий на право записи для остальных пользователей.

constants.S_IWUSR

Константа для свойства mode объекта fs.Stats, используемая для определения разрешений доступа к файлу. Режим файла, указывающий на право записи для владельца.

constants.S_IXGRP

Константа для свойства mode объекта fs.Stats, используемая для определения разрешений доступа к файлу. Режим файла, указывающий на право выполнения для группы.

constants.S_IXOTH

Константа для свойства mode объекта fs.Stats, используемая для определения разрешений доступа к файлу. Режим файла, указывающий на право выполнения для остальных пользователей.

constants.S_IXUSR

Константа для свойства mode объекта fs.Stats, используемая для определения разрешений доступа к файлу. Режим файла, указывающий на право выполнения для владельца.

constants.UV_FS_O_FILEMAP

При установке этого флага для доступа к файлу используется отображение файла в память. Этот флаг доступен только в операционных системах Windows. В других операционных системах он игнорируется.

constants.W_OK

Константа для fs.access(). Файл доступен вызывающему процессу для записи.

constants.X_OK

Константа для fs.access(). Файл доступен вызывающему процессу для выполнения.


пространство имён promises

Использование в Deno

import { promises } from "node:fs";

API fs/promises предоставляет асинхронные методы файловой системы, возвращающие промисы.

API промисов использует базовый пул потоков Node.js для выполнения операций файловой системы вне потока цикла событий. Эти операции не синхронизированы и не являются потокобезопасными. При одновременном выполнении нескольких операций изменения одного и того же файла следует соблюдать осторожность, иначе возможно повреждение данных.

Функции

promises.access

Проверяет разрешения пользователя для файла или каталога, указанного в path. Аргумент mode является необязательным целым числом, указывающим проверки доступности, которые нужно выполнить. mode должно быть либо значением fs.constants.F_OK, либо маской, состоящей из побитового ИЛИ любых значений из fs.constants.R_OK, fs.constants.W_OK и fs.constants.X_OK (например, fs.constants.W_OK | fs.constants.R_OK). Возможные значения mode см. в File access constants.

promises.appendFile

Асинхронно добавляет данные в файл, создавая его, если он ещё не существует. data может быть строкой или Buffer.

promises.chmod

Изменяет разрешения файла.

promises.chown

Изменяет владельца файла.

promises.copyFile

Асинхронно копирует src в dest. По умолчанию dest перезаписывается, если уже существует.

promises.cp

Асинхронно копирует всю структуру каталогов из src в dest, включая подкаталоги и файлы.

promises.glob

Возвращает файлы, соответствующие указанному шаблону.

promises.lchown

Изменяет владельца символической ссылки.

promises.link

Создаёт новую ссылку с existingPath на newPath. Дополнительные сведения см. в документации POSIX link(2).

promises.lstat

Эквивалентно fsPromises.stat(), если только path не является символической ссылкой. В этом случае проверяется сама ссылка, а не файл, на который она указывает. Дополнительные сведения см. в документе POSIX lstat(2).

promises.lutimes

Изменяет время доступа и модификации файла так же, как fsPromises.utimes(), но если путь указывает на символическую ссылку, ссылка не разыменовывается: вместо этого изменяются временные метки самой символической ссылки.

promises.mkdir

Асинхронно создаёт каталог.

promises.mkdtemp

Создаёт уникальный временный каталог. Уникальное имя каталога формируется добавлением шести случайных символов в конец заданного prefix. Из-за различий между платформами не используйте завершающие символы X в prefix. Некоторые платформы, в частности BSD, могут возвращать более шести случайных символов и заменять завершающие символы X в prefix случайными символами.

promises.open

Открывает FileHandle.

promises.opendir

Асинхронно открывает каталог для итеративного сканирования. Дополнительные сведения см. в документации POSIX opendir(3).

promises.readdir

Читает содержимое каталога.

promises.readFile

Асинхронно читает всё содержимое файла.

promises.readlink

Читает содержимое символической ссылки, на которую указывает path. Дополнительные сведения см. в документации POSIX readlink(2). В случае успеха промис выполняется с linkString.

promises.realpath

Определяет фактическое расположение path, используя ту же семантику, что и функция fs.realpath.native().

promises.rename

Переименовывает oldPath в newPath.

promises.rm

Удаляет файлы и каталоги (по образцу стандартной утилиты POSIX rm).

promises.rmdir

Удаляет каталог, указанный в path.

promises.stat
Документация отсутствует
promises.statfs
Документация отсутствует
promises.symlink

Создаёт символическую ссылку.

promises.truncate

Усекает (уменьшает или увеличивает длину) содержимое по адресу path до len байт.

promises.unlink

Если path указывает на символическую ссылку, ссылка удаляется без воздействия на файл или каталог, на который она ссылается. Если path указывает на путь к файлу, не являющемуся символической ссылкой, файл удаляется. Дополнительные сведения см. в документации POSIX unlink(2).

promises.utimes

Изменяет временные метки файловой системы объекта, на который указывает path.

promises.watch

Возвращает асинхронный итератор, отслеживающий изменения в filename, где filename — это файл или каталог.

promises.writeFile

Асинхронно записывает данные в файл, заменяя его, если он уже существует. data может быть строкой, буфером, объектом AsyncIterable или объектом Iterable.

promises.lchmod
Документация отсутствует

Интерфейсы

promises.CreateReadStreamOptions
Документация отсутствует
  • autoClose
  • emitClose
  • encoding
  • end
  • highWaterMark
  • start
promises.CreateWriteStreamOptions
Документация отсутствует
  • autoClose
  • emitClose
  • encoding
  • flush
  • highWaterMark
  • start
promises.FileChangeInfo
Документация отсутствует
  • eventType
  • filename
promises.FileHandle
Документация отсутствует
  • appendFile
  • chmod
  • chown
  • close
  • createReadStream
  • createWriteStream
  • datasync
  • fd
  • read
  • readFile
  • readLines
  • readableWebStream
  • readv
  • stat
  • sync
  • truncate
  • utimes
  • write
  • writeFile
  • writev
promises.FileReadOptions
Документация отсутствует
  • buffer
  • length
  • offset
  • position
promises.FileReadResult
Документация отсутствует
  • buffer
  • bytesRead
promises.FlagAndOpenMode
Документация отсутствует
  • flag
  • mode
promises.ReadableWebStreamOptions
Документация отсутствует
  • type

Переменные

promises.constants
Документация отсутствует

псевдоним типа BigIntStatsListener

Использование в Deno

import { type BigIntStatsListener } from "node:fs";

Определение

(
curr: BigIntStats,
prev: BigIntStats,
) => void

псевдоним типа BufferEncodingOption

Использование в Deno

import { type BufferEncodingOption } from "node:fs";

Определение

"buffer" | { encoding: "buffer"; }

псевдоним типа CustomEvents

Использование в Deno

import { type CustomEvents } from "node:fs";

string & {} позволяет использовать для события строки любого типа, сохраняя при этом автодополнение для стандартных событий.

Определение

[Key in string & { } | symbol]: (...args: any[]) => void

псевдоним типа EncodingOption

Использование в Deno

import { type EncodingOption } from "node:fs";

Определение

ObjectEncodingOptions
| BufferEncoding
| undefined
| null

псевдоним типа Mode

Использование в Deno

import { type Mode } from "node:fs";

Определение

number | string

псевдоним типа NoParamCallback

Использование в Deno

import { type NoParamCallback } from "node:fs";

Определение

(err: ErrnoException | null) => void

псевдоним типа OpenMode

Использование в Deno

import { type OpenMode } from "node:fs";

Определение

number | string

псевдоним типа PathLike

Использование в Deno

import { type PathLike } from "node:fs";

Допустимые типы значений путей в «fs».

Определение

string
| Buffer
| URL

псевдоним типа PathOrFileDescriptor

Использование в Deno

import { type PathOrFileDescriptor } from "node:fs";

Определение

PathLike | number

псевдоним типа ReadPosition

Использование в Deno

import { type ReadPosition } from "node:fs";

Определение

number | bigint

псевдоним типа ReadStreamEvents

Использование в Deno

import { type ReadStreamEvents } from "node:fs";

Ключи — это события ReadStream, а значения — функции, вызываемые при возникновении события.

Определение

{ close: () => void; data: (chunk: Buffer | string) => void; end: () => void; error: (err: Error) => void; open: (fd: number) => void; pause: () => void; readable: () => void; ready: () => void; resume: () => void; } & CustomEvents

псевдоним типа StatsListener

Использование в Deno

import { type StatsListener } from "node:fs";

Определение

(
curr: Stats,
prev: Stats,
) => void

псевдоним типа symlink.Type

Использование в Deno

import { symlink } from "node:fs";

Определение

"dir"
| "file"
| "junction"

псевдоним типа TimeLike

Использование в Deno

import { type TimeLike } from "node:fs";

Определение

string
| number
| Date

псевдоним типа WatchEventType

Использование в Deno

import { type WatchEventType } from "node:fs";

Определение

"rename" | "change"

псевдоним типа WatchListener

Использование в Deno

import { type WatchListener } from "node:fs";

Параметры типа

T

Определение

(
event: WatchEventType,
filename: T | null,
) => void

псевдоним типа WriteFileOptions

Использование в Deno

import { type WriteFileOptions } from "node:fs";

Определение

(
ObjectEncodingOptions
& Abortable
& { mode?: Mode | undefined; flag?: string | undefined; flush?: boolean | undefined; }
)

| BufferEncoding
| null

псевдоним типа WriteStreamEvents

Использование в Deno

import { type WriteStreamEvents } from "node:fs";

Ключи — это события WriteStream, а значения — функции, вызываемые при возникновении события.

Определение

{ close: () => void; drain: () => void; error: (err: Error) => void; finish: () => void; open: (fd: number) => void; pipe: (src: stream.Readable) => void; ready: () => void; unpipe: (src: stream.Readable) => void; } & CustomEvents

переменная constants.COPYFILE_EXCL

Использование в Deno

import { constants } from "node:fs";

Константа для fs.copyFile. Флаг, указывающий, что файл назначения не следует перезаписывать, если он уже существует.

Тип

number

переменная constants.COPYFILE_FICLONE

Использование в Deno

import { constants } from "node:fs";

Константа для fs.copyFile. При копировании предпринимается попытка создать reflink с копированием при записи. Если нижележащая платформа не поддерживает копирование при записи, используется резервный механизм копирования.

Тип

number

переменная constants.COPYFILE_FICLONE_FORCE

Использование в Deno

import { constants } from "node:fs";

Константа для fs.copyFile. При копировании предпринимается попытка создать reflink с копированием при записи. Если нижележащая платформа не поддерживает копирование при записи, операция завершается ошибкой.

Тип

number

переменная constants.F_OK

Использование в Deno

import { constants } from "node:fs";

Константа для fs.access(). Файл доступен вызывающему процессу.

Тип

number

переменная constants.O_APPEND

Использование в Deno

import { constants } from "node:fs";

Константа для fs.open(). Флаг указывает, что данные будут добавляться в конец файла.

Тип

number

переменная constants.O_CREAT

Использование в Deno

import { constants } from "node:fs";

Константа для fs.open(). Флаг указывает создать файл, если он еще не существует.

Тип

number

переменная constants.O_DIRECT

Использование в Deno

import { constants } from "node:fs";

Константа для fs.open(). При установке предпринимается попытка минимизировать эффекты кэширования при вводе-выводе файлов.

Тип

number

переменная constants.O_DIRECTORY

Использование в Deno

import { constants } from "node:fs";

Константа для fs.open(). Флаг указывает, что операция открытия должна завершиться ошибкой, если путь не является каталогом.

Тип

number

переменная constants.O_DSYNC

Использование в Deno

import { constants } from "node:fs";

Константа для fs.open(). Флаг указывает, что файл открыт для синхронного ввода-вывода, при этом операции записи ожидают обеспечения целостности данных.

Тип

number

переменная constants.O_EXCL

Использование в Deno

import { constants } from "node:fs";

Константа для fs.open(). Флаг указывает, что открытие файла должно завершиться ошибкой, если установлен флаг O_CREAT и файл уже существует.

Тип

number

переменная constants.O_NOATIME

Использование в Deno

import { constants } from "node:fs";

Константа для fs.open(). Флаг указывает, что обращения к файловой системе для чтения больше не будут обновлять сведения atime, связанные с файлом. Этот флаг доступен только в операционных системах Linux.

Тип

number

переменная constants.O_NOCTTY

Использование в Deno

import { constants } from "node:fs";

Константа для fs.open(). Флаг указывает, что если путь обозначает терминальное устройство, его открытие не должно делать этот терминал управляющим терминалом процесса (если у процесса его еще нет).

Тип

number

переменная constants.O_NOFOLLOW

Использование в Deno

import { constants } from "node:fs";

Константа для fs.open(). Флаг указывает, что открытие должно завершиться ошибкой, если путь является символической ссылкой.

Тип

number

переменная constants.O_NONBLOCK

Использование в Deno

import { constants } from "node:fs";

Константа для fs.open(). Флаг указывает открыть файл в неблокирующем режиме, если это возможно.

Тип

number

переменная constants.O_RDONLY

Использование в Deno

import { constants } from "node:fs";

Константа для fs.open(). Флаг указывает открыть файл только для чтения.

Тип

number

переменная constants.O_RDWR

Использование в Deno

import { constants } from "node:fs";

Константа для fs.open(). Флаг указывает открыть файл для чтения и записи.

Тип

number

переменная constants.O_SYMLINK

Использование в Deno

import { constants } from "node:fs";

Константа для fs.open(). Флаг указывает открыть саму символическую ссылку, а не ресурс, на который она указывает.

Тип

number

переменная constants.O_SYNC

Использование в Deno

import { constants } from "node:fs";

Константа для fs.open(). Флаг указывает, что файл открыт для синхронного ввода-вывода.

Тип

number

переменная constants.O_TRUNC

Использование в Deno

import { constants } from "node:fs";

Константа для fs.open(). Флаг указывает, что если файл существует и является обычным файлом, а его удалось открыть для записи, его размер должен быть усечен до нуля.

Тип

number

переменная constants.O_WRONLY

Использование в Deno

import { constants } from "node:fs";

Константа для fs.open(). Флаг, указывающий, что файл следует открыть только для записи.

Тип

number

переменная constants.R_OK

Использование в Deno

import { constants } from "node:fs";

Константа для fs.access(). Вызывающий процесс может читать файл.

Тип

number

переменная constants.S_IFBLK

Использование в Deno

import { constants } from "node:fs";

Константа для определения типа файла с помощью свойства mode объекта fs.Stats. Константа типа файла для блочно-ориентированного устройства.

Тип

number

переменная constants.S_IFCHR

Использование в Deno

import { constants } from "node:fs";

Константа для определения типа файла с помощью свойства mode объекта fs.Stats. Константа типа файла для символьно-ориентированного устройства.

Тип

number

переменная constants.S_IFDIR

Использование в Deno

import { constants } from "node:fs";

Константа для определения типа файла с помощью свойства mode объекта fs.Stats. Константа типа файла для каталога.

Тип

number

переменная constants.S_IFIFO

Использование в Deno

import { constants } from "node:fs";

Константа для определения типа файла с помощью свойства mode объекта fs.Stats. Константа типа файла для FIFO-канала.

Тип

number

переменная constants.S_IFLNK

Использование в Deno

import { constants } from "node:fs";

Константа для определения типа файла с помощью свойства mode объекта fs.Stats. Константа типа файла для символической ссылки.

Тип

number

переменная constants.S_IFMT

Использование в Deno

import { constants } from "node:fs";

Константа для определения типа файла с помощью свойства mode объекта fs.Stats. Битовая маска для извлечения кода типа файла.

Тип

number

переменная constants.S_IFREG

Использование в Deno

import { constants } from "node:fs";

Константа для определения типа файла с помощью свойства mode объекта fs.Stats. Константа типа файла для обычного файла.

Тип

number

переменная constants.S_IFSOCK

Использование в Deno

import { constants } from "node:fs";

Константа для определения типа файла с помощью свойства mode объекта fs.Stats. Константа типа файла для сокета.

Тип

number

переменная constants.S_IRGRP

Использование в Deno

import { constants } from "node:fs";

Константа для определения прав доступа к файлу с помощью свойства mode объекта fs.Stats. Режим файла, указывающий на возможность чтения для группы.

Тип

number

переменная constants.S_IROTH

Использование в Deno

import { constants } from "node:fs";

Константа для определения прав доступа к файлу с помощью свойства mode объекта fs.Stats. Режим файла, указывающий на возможность чтения для остальных пользователей.

Тип

number

переменная constants.S_IRUSR

Использование в Deno

import { constants } from "node:fs";

Константа для определения прав доступа к файлу с помощью свойства mode объекта fs.Stats. Режим файла, указывающий на возможность чтения владельцем.

Тип

number

переменная constants.S_IRWXG

Использование в Deno

import { constants } from "node:fs";

Константа для определения прав доступа к файлу с помощью свойства mode объекта fs.Stats. Режим файла, указывающий на возможность чтения, записи и выполнения для группы.

Тип

number

переменная constants.S_IRWXO

Использование в Deno

import { constants } from "node:fs";

Константа для определения прав доступа к файлу с помощью свойства mode объекта fs.Stats. Режим файла, указывающий на возможность чтения, записи и выполнения для остальных пользователей.

Тип

number

переменная constants.S_IRWXU

Использование в Deno

import { constants } from "node:fs";

Константа для определения прав доступа к файлу с помощью свойства mode объекта fs.Stats. Режим файла, указывающий на возможность чтения, записи и выполнения владельцем.

Тип

number

переменная constants.S_IWGRP

Использование в Deno

import { constants } from "node:fs";

Константа для определения прав доступа к файлу с помощью свойства mode объекта fs.Stats. Режим файла, указывающий на возможность записи для группы.

Тип

number

переменная constants.S_IWOTH

Использование в Deno

import { constants } from "node:fs";

Константа для определения прав доступа к файлу с помощью свойства mode объекта fs.Stats. Режим файла, указывающий на возможность записи для остальных пользователей.

Тип

number

переменная constants.S_IWUSR

Использование в Deno

import { constants } from "node:fs";

Константа для определения прав доступа к файлу с помощью свойства mode объекта fs.Stats. Режим файла, указывающий на возможность записи владельцем.

Тип

number

переменная constants.S_IXGRP

Использование в Deno

import { constants } from "node:fs";

Константа для определения прав доступа к файлу с помощью свойства mode объекта fs.Stats. Режим файла, указывающий на возможность выполнения для группы.

Тип

number

переменная constants.S_IXOTH

Использование в Deno

import { constants } from "node:fs";

Константа для определения прав доступа к файлу с помощью свойства mode объекта fs.Stats. Режим файла, указывающий на возможность выполнения для остальных пользователей.

Тип

number

переменная constants.S_IXUSR

Использование в Deno

import { constants } from "node:fs";

Константа для определения прав доступа к файлу с помощью свойства mode объекта fs.Stats. Режим файла, указывающий на возможность выполнения владельцем.

Тип

number

переменная constants.UV_FS_O_FILEMAP

Использование в Deno

import { constants } from "node:fs";

Если установлен этот флаг, для доступа к файлу используется отображение файла в память. Этот флаг доступен только в операционных системах Windows. В других операционных системах флаг игнорируется.

Тип

number

переменная constants.W_OK

Использование в Deno

import { constants } from "node:fs";

Константа для fs.access(). Вызывающий процесс может записывать в файл.

Тип

number

переменная constants.X_OK

Использование в Deno

import { constants } from "node:fs";

Константа для fs.access(). Вызывающий процесс может выполнять файл.

Тип

number

переменная lstatSync

Использование в Deno

import { lstatSync } from "node:fs";

Синхронный вызов lstat(2) — получение сведений о файле. Не разыменовывает символические ссылки.

Тип

StatSyncFn

переменная promises.constants

Использование в Deno

import { promises } from "node:fs";
const { constants } = promises;

Тип

fsConstants

переменная statSync

Использование в Deno

import { statSync } from "node:fs";

Синхронный stat(2) — получить информацию о файле.

Тип

StatSyncFn

© 2018–2025 the Deno authors
Licensed under the MIT License.
https://docs.deno.com/api/node/fs

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API