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
Использование в 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 Синхронно закрывает дескриптор ресурса, лежащего в основе каталога. Последующие операции чтения завершатся ошибкой.
Асинхронно считывает следующую запись каталога с помощью readdir(3) как fs.Dirent.
Возвращается промис, который будет выполнен с результатом fs.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
Использование в 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
- open
- close
- 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
Использование в 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
- open
- close
- 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(): 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(): voidАсинхронно добавляет данные в файл, создавая его, если он ещё не существует.
Параметры
file: PathOrFileDescriptor Путь к файлу. Если указан URL, он должен использовать протокол file:. Если указан файловый дескриптор, базовый файл не будет закрыт автоматически.
data: string | Uint8Array Данные для записи. Если передано значение, отличное от Buffer или Uint8Array, оно преобразуется в строку.
callback: NoParamCallback Тип возвращаемого значения
void функция appendFileSync
Использование в Deno
import { appendFileSync } from "node:fs";
appendFileSync(): 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(): 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!');
});
Параметры
Тип возвращаемого значения
void функция chmodSync
Использование в Deno
import { chmodSync } from "node:fs";
функция chown
Использование в Deno
import { chown } from "node:fs";
chown(): voidАсинхронно изменяет владельца и группу файла. В функцию обратного вызова завершения передаются только возможная ошибка и никакие другие аргументы.
Подробнее см. в документации POSIX для chown(2).
Параметры
Тип возвращаемого значения
void функция chownSync
Использование в Deno
import { chownSync } from "node:fs";
функция 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(): 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(): voidПараметры
Тип возвращаемого значения
void функция copyFileSync
Использование в Deno
import { copyFileSync } from "node:fs";
copyFileSync(): 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);
Параметры
Тип возвращаемого значения
void функция cp
Использование в Deno
import { cp } from "node:fs";
Перегрузка 1
cp(): voidАсинхронно копирует всю структуру каталогов из src в dest, включая вложенные каталоги и файлы.
При копировании каталога в другой каталог шаблоны glob не поддерживаются, а поведение аналогично cp dir1/ dir2/.
Параметры
Тип возвращаемого значения
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(): voidСинхронно копирует всю структуру каталогов из src в dest, включая вложенные каталоги и файлы.
При копировании каталога в другой каталог шаблоны glob не поддерживаются, а поведение аналогично cp dir1/ dir2/.
Параметры
Тип возвращаемого значения
void функция createReadStream
Использование в Deno
import { createReadStream } from "node:fs";
createReadStream(
path: PathLike,
options?: BufferEncoding | ReadStreamOptions,
): ReadStreamoptions может включать значения 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 Возвращаемый тип
функция createWriteStream
Использование в Deno
import { createWriteStream } from "node:fs";
createWriteStream(
path: PathLike,
options?: BufferEncoding | WriteStreamOptions,
): WriteStreamoptions может также включать параметр 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 Возвращаемый тип
функция 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 функция fchmodSync
Использование в Deno
import { fchmodSync } from "node:fs";
функция 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
Вариант перегрузки 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; } Тип возвращаемого значения
Перегрузка 2
fstatSync(
fd: number,
options: StatOptions & { bigint: true; },
): BigIntStatsПараметры
fd: number options: StatOptions & { bigint: true; } Тип возвращаемого значения
Перегрузка 3
fstatSync(
fd: number,
options?: StatOptions,
): Stats | BigIntStatsПараметры
fd: number options: StatOptions Тип возвращаемого значения
функция 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(): 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.
Параметры
Тип возвращаемого значения
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 функция 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(): voidЗадает владельца символической ссылки. В функцию обратного вызова завершения передаются только аргументы, содержащие возможное исключение.
Дополнительные сведения см. в документации POSIX lchown(2).
Параметры
Тип возвращаемого значения
void функция link
Использование в Deno
import { link } from "node:fs";
link(): voidСоздаёт новую ссылку от existingPath к newPath. Дополнительные сведения см. в документации POSIX link(2). В функцию обратного вызова завершения передаются только аргументы, содержащие возможное исключение.
Параметры
Возвращаемый тип
void функция linkSync
Использование в Deno
import { linkSync } from "node:fs";
функция lstat
Использование в Deno
import { lstat } from "node:fs";
Перегрузка 1
lstat(): voidПолучает fs.Stats для символической ссылки, указанной в пути. Функция обратного вызова получает два аргумента (err, stats), где stats — объект fs.Stats. lstat() идентична stat(), за исключением того, что если path является символической ссылкой, то сведения о самой ссылке получают с помощью stat, а не о файле, на который она указывает.
Дополнительные сведения см. в документации POSIX lstat(2).
Параметры
Возвращаемый тип
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(): voidИзменяет время доступа и изменения файла так же, как utimes, но если путь указывает на символическую ссылку, она не разыменовывается: вместо этого изменяются временные метки самой символической ссылки.
В функцию обратного вызова завершения передаются только аргументы, содержащие возможное исключение.
Параметры
Возвращаемый тип
void функция lutimesSync
Использование в Deno
import { lutimesSync } from "node:fs";
lutimesSync(): voidИзменяет временные метки файловой системы символической ссылки, на которую указывает path. Возвращает undefined или выбрасывает исключение, если параметры неверны или операция завершается с ошибкой. Это синхронная версия lutimes.
Параметры
Возвращаемый тип
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(): voidАсинхронный mkdir(2) — создание каталога.
Параметры
path: PathLike Путь к файлу. Если указан URL, он должен использовать протокол file:.
options: Режим доступа к файлу или объект, в котором можно указать режим доступа к файлу и необходимость создания родительских каталогов. Если передана строка, она разбирается как восьмеричное целое число. Если значение не указано, используется 0o777.
callback: NoParamCallback Возвращаемый тип
void Перегрузка 3
mkdir(): voidАсинхронный mkdir(2) — создание каталога.
Параметры
path: PathLike Путь к файлу. Если указан URL, он должен использовать протокол file:.
options: Режим доступа к файлу или объект, в котором можно указать режим доступа к файлу и необходимость создания родительских каталогов. Если передана строка, она разбирается как восьмеричное целое число. Если значение не указано, используется 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Параметры
path: PathLike options: MakeDirectoryOptions & { recursive: true; } Возвращаемый тип
string | undefined Перегрузка 2
mkdirSync(
path: PathLike,
options?: ,
): voidСинхронный mkdir(2) — создание каталога.
Параметры
path: PathLike Путь к файлу. Если указан URL, он должен использовать протокол file:.
options: Режим доступа к файлу или объект, в котором можно указать режим доступа к файлу и необходимость создания родительских каталогов. Если передана строка, она разбирается как восьмеричное целое число. Если значение не указано, используется 0o777.
Возвращаемый тип
void Перегрузка 3
mkdirSync(
path: PathLike,
options?: ,
): string | undefinedСинхронный mkdir(2) — создание каталога.
Параметры
path: PathLike Путь к файлу. Если указан URL, он должен использовать протокол file:.
options: Режим доступа к файлу или объект, в котором можно указать режим доступа к файлу и необходимость создания родительских каталогов. Если передана строка, она разбирается как восьмеричное целое число. Если значение не указано, используется 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: ,
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() и т. д.
Параметры
Тип возвращаемого значения
void Перегрузка 2
open(
path: PathLike,
flags: OpenMode | undefined,
callback: (
err: ErrnoException | null,
fd: number,
) => void,
): voidАсинхронный вызов open(2) — открывает файл и при необходимости создаёт его. Если файл создан, его режим будет 0o666.
Параметры
Тип возвращаемого значения
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(): voidАсинхронно открывает каталог. Подробнее см. документацию POSIX opendir(3).
Создаёт fs.Dir, содержащий все дополнительные функции для чтения содержимого каталога и очистки ресурсов.
Параметр encoding задаёт кодировку для path при открытии каталога и последующих операциях чтения.
Параметры
Тип возвращаемого значения
void Перегрузка 2
opendir(): 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 Тип возвращаемого значения
функция 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(): Promise<void>Асинхронно добавляет данные в файл, создавая его, если он ещё не существует. data может быть строкой или Buffer.
Если options — строка, она задаёт encoding.
Параметр mode влияет только на вновь созданный файл. Подробнее см. fs.open().
В качестве path можно указать FileHandle, открытый для добавления данных (с помощью fsPromises.open()).
Параметры
path: PathLike | FileHandle имя файла или {FileHandle}
data: string | Uint8Array options:
()
| BufferEncoding
| null
Тип возвращаемого значения
Promise<void> При успешном выполнении разрешается со значением undefined.
функция promises.chmod
Использование в Deno
import { promises } from "node:fs";
const { chmod } = promises;
функция promises.chown
Использование в Deno
import { promises } from "node:fs";
const { chown } = promises;
функция promises.copyFile
Использование в Deno
import { promises } from "node:fs";
const { copyFile } = promises;
copyFile(): 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(): Promise<void>Асинхронно копирует всю структуру каталогов из src в dest, включая подкаталоги и файлы.
При копировании каталога в другой каталог шаблоны glob не поддерживаются, а поведение аналогично cp dir1/ dir2/.
Параметры
Тип возвращаемого значения
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[] Тип возвращаемого значения
AsyncIterator<Dirent> Перегрузка 3
glob(
pattern: string | string[],
): AsyncIterator<string>Параметры
pattern: string | string[] Тип возвращаемого значения
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;
функция promises.link
Использование в Deno
import { promises } from "node:fs";
const { link } = promises;
link(): Promise<void>
функция 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(): Promise<void>Изменяет время доступа и модификации файла так же, как fsPromises.utimes(), но если путь указывает на символическую ссылку, она не разыменовывается: вместо этого изменяются временные метки самой символической ссылки.
Параметры
Тип возвращаемого значения
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?: ,
): Promise<void>Асинхронный mkdir(2) — создание каталога.
Параметры
path: PathLike Путь к файлу. Если указан URL, он должен использовать протокол file:.
options: Режим доступа к файлу или объект, в котором можно указать режим доступа к файлу и необходимость создания родительских каталогов. Если передана строка, она разбирается как восьмеричное целое число. Если значение не указано, используется 0o777.
Тип возвращаемого значения
Promise<void> Перегрузка 3
mkdir(
path: PathLike,
options?: ,
): Promise<string | undefined>Асинхронный mkdir(2) — создание каталога.
Параметры
path: PathLike Путь к файлу. Если указан URL, он должен использовать протокол file:.
options: Режим доступа к файлу или объект, в котором можно указать режим доступа к файлу и необходимость создания родительских каталогов. Если передана строка, она разбирается как восьмеричное целое число. Если значение не указано, используется 0o777.
Тип возвращаемого значения
Promise<string | undefined> функция promises.mkdtemp
Использование в Deno
import { promises } from "node:fs";
const { mkdtemp } = promises;
Перегрузка 1
mkdtemp(
prefix: string,
options?: ,
): 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: Тип возвращаемого значения
Promise<string> Выполняется со строкой, содержащей путь в файловой системе к созданному временному каталогу.
Перегрузка 2
mkdtemp(
prefix: string,
options: BufferEncodingOption,
): Promise<Buffer>Асинхронно создаёт уникальный временный каталог. Генерирует шесть случайных символов, которые добавляются после обязательного prefix для создания уникального временного каталога.
Параметры
prefix: string options: BufferEncodingOption Кодировка (или объект, задающий кодировку), используемая для кодирования результата. Если значение не указано, используется 'utf8'.
Тип возвращаемого значения
Promise<Buffer> Перегрузка 3
mkdtemp(
prefix: string,
options?: ,
): Promise<string | Buffer>Асинхронно создаёт уникальный временный каталог. Генерирует шесть случайных символов, которые добавляются после обязательного prefix для создания уникального временного каталога.
Параметры
prefix: string options: Кодировка (или объект, задающий кодировку), используемая для кодирования результата. Если значение не указано, используется 'utf8'.
Тип возвращаемого значения
Promise<string | Buffer> функция promises.open
Использование в Deno
import { promises } from "node:fs";
const { open } = promises;
open(): Promise<FileHandle>Открывает FileHandle.
Дополнительные сведения см. в документации POSIX open(2).
Некоторые символы (< > : " / \ | ? *) зарезервированы в Windows, как указано в документации «Имена файлов, пути и пространства имён». В NTFS, если имя файла содержит двоеточие, Node.js откроет поток файловой системы, как описано на этой странице MSDN.
Параметры
Тип возвращаемого значения
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,
): 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
Тип возвращаемого значения
Promise<Buffer> Выполняется с содержимым файла.
Перегрузка 2
readFile(
path: PathLike | FileHandle,
): Promise<string>Асинхронно считывает всё содержимое файла.
Параметры
path: PathLike | FileHandle Путь к файлу. Если указан URL, он должен использовать протокол file:. Если указан FileHandle, базовый файл не будет закрыт автоматически.
Тип возвращаемого значения
Promise<string> Перегрузка 3
readFile(
path: PathLike | FileHandle,
options?: ,
): Promise<string | Buffer>Асинхронно считывает всё содержимое файла.
Параметры
path: PathLike | FileHandle Путь к файлу. Если указан URL, он должен использовать протокол file:. Если указан FileHandle, базовый файл не будет закрыт автоматически.
options: Объект, который может содержать необязательный флаг. Если флаг не указан, по умолчанию используется 'r'.
Тип возвращаемого значения
Promise<string | Buffer> функция promises.readlink
Использование в Deno
import { promises } from "node:fs";
const { readlink } = promises;
Перегрузка 1
readlink(
path: PathLike,
options?: ,
): Promise<string>Считывает содержимое символической ссылки, на которую указывает path. Подробнее см. документацию POSIX readlink(2). В случае успеха промис выполняется со значением linkString.
Необязательный аргумент options может быть строкой, задающей кодировку, или объектом со свойством encoding, указывающим кодировку символов для возвращаемого пути ссылки. Если для encoding задано значение 'buffer', возвращаемый путь ссылки будет передан в виде объекта Buffer.
Параметры
path: PathLike options: Тип возвращаемого значения
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?: ,
): Promise<string | Buffer>Асинхронный readlink(2) — чтение значения символической ссылки.
Параметры
path: PathLike Путь к файлу. Если указан URL, он должен использовать протокол file:.
options: Кодировка (или объект, задающий кодировку), используемая для результата. Если не указана, используется 'utf8'.
Тип возвращаемого значения
Promise<string | Buffer> функция promises.realpath
Использование в Deno
import { promises } from "node:fs";
const { realpath } = promises;
Перегрузка 1
realpath(
path: PathLike,
options?: ,
): Promise<string>Определяет фактическое расположение path, используя ту же семантику, что и функция fs.realpath.native().
Поддерживаются только пути, которые можно преобразовать в строки UTF8.
Необязательный аргумент options может быть строкой, задающей кодировку, или объектом со свойством encoding, указывающим кодировку символов для пути. Если для encoding задано значение 'buffer', возвращаемый путь будет передан в виде объекта Buffer.
В Linux, если Node.js скомпонован с musl libc, для работы этой функции файловая система procfs должна быть смонтирована в /proc. Для Glibc такого ограничения нет.
Параметры
path: PathLike options: Тип возвращаемого значения
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?: ,
): Promise<string | Buffer>Асинхронный realpath(3) — возврат канонического абсолютного пути.
Параметры
path: PathLike Путь к файлу. Если указан URL, он должен использовать протокол file:.
options: Кодировка (или объект, задающий кодировку), используемая для результата. Если не указана, используется 'utf8'.
Тип возвращаемого значения
Promise<string | Buffer> функция promises.rename
Использование в Deno
import { promises } from "node:fs";
const { rename } = promises;
функция promises.rm
Использование в Deno
import { promises } from "node:fs";
const { rm } = promises;
функция 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(): Promise<void>Создаёт символическую ссылку.
Аргумент type используется только на платформах Windows и может принимать одно из значений: 'dir', 'file' или 'junction'. Если аргумент type не является строкой, Node.js автоматически определит тип target и использует 'file' или 'dir'. Если target не существует, будет использовано 'file'. Для точек соединения Windows путь назначения должен быть абсолютным. При использовании 'junction' аргумент target будет автоматически преобразован в абсолютный путь. Точки соединения на томах NTFS могут указывать только на каталоги.
Параметры
Тип возвращаемого значения
Promise<void> В случае успеха возвращает undefined.
функция promises.truncate
Использование в Deno
import { promises } from "node:fs";
const { truncate } = promises;
функция 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(): Promise<void>Изменяет временные метки файловой системы объекта, на который указывает path.
Аргументы atime и mtime должны соответствовать следующим правилам:
- Значения могут быть числами, обозначающими время эпохи Unix, объектами
Dateили числовыми строками, например'123456789.0'. - Если значение не удаётся преобразовать в число или оно является
NaN,Infinityили-Infinity, будет выброшено исключениеError.
Параметры
Тип возвращаемого значения
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: () => 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 Параметры
Тип возвращаемого значения
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 Параметры
Тип возвращаемого значения
void Перегрузка 4
read<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: ,
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: 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:
()
| BufferEncoding
| undefined
| null
,
callback: (
err: ErrnoException | null,
data: string | Buffer,
) => void,
): voidАсинхронно считывает всё содержимое файла.
Параметры
path: PathOrFileDescriptor Путь к файлу. Если передан URL, он должен использовать протокол file:. Если передан файловый дескриптор, соответствующий файл не будет закрыт автоматически.
options:
()
| 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?: ,
): string | BufferСинхронно считывает всё содержимое файла.
Параметры
path: PathOrFileDescriptor Путь к файлу. Если передан URL, он должен использовать протокол file:. Если передан файловый дескриптор, соответствующий файл не будет закрыт автоматически.
options: Кодировка результата или объект, содержащий кодировку и необязательный флаг. Если флаг не указан, по умолчанию используется '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(): numberВозвращает количество bytesRead.
Подробную информацию см. в документации асинхронной версии этого API: read.
Параметры
fd: number buffer: ArrayBufferView offset: number length: number position: ReadPosition | null = 'null' Тип возвращаемого значения
number Перегрузка 2
readSync(): numberПодобно описанной выше функции fs.readSync, эта версия принимает необязательный объект options. Если объект options не указан, используются значения, приведённые выше.
Параметры
Тип возвращаемого значения
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), за некоторыми исключениями:
- В файловых системах без учёта регистра символов преобразование регистра не выполняется.
- Максимальное количество символических ссылок не зависит от платформы и, как правило, значительно превышает ограничение, поддерживаемое собственной реализацией
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(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
функция 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
Использование в 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(): 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!');
});
Параметры
Возвращаемый тип
void функция renameSync
Использование в Deno
import { renameSync } from "node:fs";
функция rm
Использование в Deno
import { rm } from "node:fs";
Перегрузка 1
rm(
path: PathLike,
callback: NoParamCallback,
): voidАсинхронно удаляет файлы и каталоги (по образцу стандартной утилиты POSIX rm). В функцию обратного вызова завершения передаются только аргументы, связанные с возможным исключением.
Параметры
path: PathLike callback: NoParamCallback Возвращаемый тип
void Перегрузка 2
rm(): voidПараметры
Возвращаемый тип
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(): voidПараметры
Возвращаемый тип
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";
функция stat
Использование в Deno
import { stat } from "node:fs";
Перегрузка 1
stat(): 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
}
Параметры
Возвращаемый тип
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(): voidАсинхронная версия statfs(2). Возвращает сведения о смонтированной файловой системе, содержащей path. Функция обратного вызова получает два аргумента (err, stats), где stats — объект fs.StatFs.
В случае ошибки значение err.code будет одним из Common System Errors.
Параметры
Возвращаемый тип
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; } Возвращаемый тип
Перегрузка 2
statfsSync(
path: PathLike,
options: StatFsOptions & { bigint: true; },
): BigIntStatsFsПараметры
path: PathLike options: StatFsOptions & { bigint: true; } Возвращаемый тип
Перегрузка 3
statfsSync(
path: PathLike,
options?: StatFsOptions,
): StatsFs | BigIntStatsFsПараметры
path: PathLike options: StatFsOptions Возвращаемый тип
функция symlink
Использование в Deno
import { symlink } from "node:fs";
Перегрузка 1
symlink(): 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
Параметры
Тип возвращаемого значения
void Перегрузка 2
symlink(): voidАсинхронный вызов symlink(2) — создание новой символической ссылки на существующий файл.
Параметры
target: PathLike Путь к существующему файлу. Если указана URL-адрес, он должен использовать протокол file:.
path: PathLike Путь к новой символической ссылке. Если указан URL-адрес, он должен использовать протокол file:.
callback: NoParamCallback Тип возвращаемого значения
void пространство имён symlink
Псевдонимы типов
функция symlinkSync
Использование в Deno
import { symlinkSync } from "node:fs";
symlinkSync(): voidВозвращает undefined.
Подробные сведения см. в документации асинхронной версии этого API: symlink.
Параметры
Тип возвращаемого значения
void функция truncate
Использование в Deno
import { truncate } from "node:fs";
Перегрузка 1
truncate(): 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).
Параметры
Тип возвращаемого значения
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";
функция 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(): voidИзменяет временные метки файловой системы объекта, на который указывает path.
Для аргументов atime и mtime действуют следующие правила:
- Значениями могут быть числа, представляющие время в секундах от начала эпохи Unix, объекты
Dateили числовые строки, например'123456789.0'. - Если значение невозможно преобразовать в число либо оно равно
NaN,Infinityили-Infinity, будет выброшено исключениеError.
Параметры
Тип возвращаемого значения
void функция utimesSync
Использование в Deno
import { utimesSync } from "node:fs";
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> Тип возвращаемого значения
Перегрузка 2
watch(): FSWatcherОтслеживает изменения в filename, где filename является файлом или каталогом, и возвращает FSWatcher.
Параметры
filename: PathLike Путь к файлу или каталогу. Если указан URL, он должен использовать протокол file:.
options: Кодировка имени файла, передаваемого обработчику, или объект, в котором можно указать параметры encoding, persistent и recursive. Если encoding не задан, используется значение по умолчанию 'utf8'. Если persistent не задан, используется значение по умолчанию true. Если recursive не задан, используется значение по умолчанию false.
listener: WatchListener<string> Тип возвращаемого значения
Перегрузка 3
watch(): FSWatcherОтслеживает изменения в filename, где filename является файлом или каталогом, и возвращает FSWatcher.
Параметры
filename: PathLike Путь к файлу или каталогу. Если указан URL, он должен использовать протокол file:.
options: WatchOptions | string Кодировка имени файла, передаваемого обработчику, или объект, в котором можно указать параметры encoding, persistent и recursive. Если encoding не задан, используется значение по умолчанию 'utf8'. Если persistent не задан, используется значение по умолчанию true. Если recursive не задан, используется значение по умолчанию false.
listener: WatchListener<string | Buffer> Тип возвращаемого значения
Перегрузка 4
watch(
filename: PathLike,
listener?: WatchListener<string>,
): FSWatcherОтслеживает изменения в filename, где filename является файлом или каталогом, и возвращает FSWatcher.
Параметры
filename: PathLike Путь к файлу или каталогу. Если указан URL, он должен использовать протокол file:.
listener: WatchListener<string> Тип возвращаемого значения
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 Тип возвращаемого значения
Перегрузка 2
watchFile(
filename: PathLike,
options: (WatchFileOptions & { bigint: true; }) | undefined,
listener: BigIntStatsListener,
): StatWatcherПараметры
filename: PathLike options: (WatchFileOptions & { bigint: true; }) | undefined listener: BigIntStatsListener Тип возвращаемого значения
Перегрузка 3
watchFile(
filename: PathLike,
listener: StatsListener,
): StatWatcherОтслеживает изменения в filename. Функция обратного вызова listener вызывается каждый раз при обращении к файлу.
Параметры
filename: PathLike Путь к файлу или каталогу. Если указан URL, он должен использовать протокол file:.
listener: StatsListener Тип возвращаемого значения
функция 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: () => 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: () => 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 Параметры
Тип возвращаемого значения
void Перегрузка 4
write<TBuffer extends ArrayBufferView>(
fd: number,
buffer: TBuffer,
callback: (
err: ErrnoException | null,
written: number,
buffer: TBuffer,
) => void,
): voidАсинхронно записывает buffer в файл, на который указывает предоставленный файловый дескриптор.
Параметры типа
TBuffer extends ArrayBufferView Параметры
Тип возвращаемого значения
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Отсутствуют кодировки 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(): voidОтсутствуют кодировки utf16le, latin1 и ucs2.
Асинхронно записывает данные в файл, заменяя его, если он уже существует.
Параметры
path: PathOrFileDescriptor Путь к файлу. Если указан URL, он должен использовать протокол file:. Если указан файловый дескриптор, базовый файл не будет закрыт автоматически.
data: string | ArrayBufferView Данные для записи. Если передано значение, отличное от Buffer или Uint8Array, оно будет приведено к строке.
callback: NoParamCallback Тип возвращаемого значения
void функция writeFileSync
Использование в Deno
import { writeFileSync } from "node:fs";
writeFileSync(): voidПараметры
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(): voidИзменяет разрешения символической ссылки. В функцию обратного вызова завершения передаются только возможное исключение и никаких других аргументов.
Этот метод реализован только в macOS.
Дополнительную информацию см. в документации POSIX для lchmod(2).
Параметры
Тип возвращаемого значения
void функция lchmodSync
Использование в Deno
import { lchmodSync } from "node:fs";
функция promises.lchmod
Использование в Deno
import { promises } from "node:fs";
const { lchmod } = promises;
lchmod(): Promise<void>интерфейс _GlobOptions
Использование в Deno
import { type _GlobOptions } from "node:fs";
Параметры типа
T extends Dirent | string Свойства
cwd: string | undefined Текущий рабочий каталог.
withFileTypes: boolean | undefined true, если glob должен возвращать пути как Direntы, и false в противном случае.
интерфейс BigIntOptions
Использование в Deno
import { type BigIntOptions } from "node:fs";
Свойства
bigint: true интерфейс BigIntStats
Использование в Deno
import { type BigIntStats } from "node:fs";
Свойства
интерфейс BigIntStatsFs
Использование в Deno
import { type BigIntStatsFs } from "node:fs";
интерфейс CopyOptions
Использование в 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
Использование в Deno
import { type CopySyncOptions } from "node:fs";
Методы
filter(
source: string,
destination: string,
): boolean Функция для фильтрации копируемых файлов/каталогов. Верните true, чтобы скопировать элемент, или false, чтобы пропустить его.
интерфейс CreateReadStreamFSImplementation
Использование в Deno
import { type CreateReadStreamFSImplementation } from "node:fs";
Свойства
read: (...args: any[]) => any интерфейс CreateWriteStreamFSImplementation
Использование в Deno
import { type CreateWriteStreamFSImplementation } from "node:fs";
интерфейс FSImplementation
Использование в Deno
import { type FSImplementation } from "node:fs";
интерфейс FSWatcher
Использование в 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
- change
- close
- 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
Использование в Deno
import { type GlobOptions } from "node:fs";
интерфейс GlobOptionsWithFileTypes
Использование в Deno
import { type GlobOptionsWithFileTypes } from "node:fs";
Свойства
withFileTypes: true интерфейс GlobOptionsWithoutFileTypes
Использование в Deno
import { type GlobOptionsWithoutFileTypes } from "node:fs";
Свойства
withFileTypes: false | undefined интерфейс MakeDirectoryOptions
Использование в Deno
import { type MakeDirectoryOptions } from "node:fs";
Свойства
recursive: boolean | 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
Использование в Deno
import { type promises } from "node:fs";
type { CreateReadStreamOptions } = promises;
интерфейс promises.CreateWriteStreamOptions
Использование в Deno
import { type promises } from "node:fs";
type { CreateWriteStreamOptions } = promises;
интерфейс promises.FileChangeInfo
Использование в Deno
import { type promises } from "node:fs";
type { FileChangeInfo } = promises;
Параметры типа
T extends string | Buffer Свойства
интерфейс promises.FileHandle
Использование в Deno
import { type promises } from "node:fs";
type { FileHandle } = promises;
Свойства
fd: number Числовой файловый дескриптор, управляемый объектом {FileHandle}.
Методы
appendFile(
data: string | Uint8Array,
options?: ,
): Promise<void> Псевдоним для filehandle.writeFile().
При работе с файловыми дескрипторами режим нельзя изменить по сравнению с тем, который был установлен с помощью fsPromises.open(). Поэтому этот метод эквивалентен filehandle.writeFile().
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?: ): 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.
Изменяет временные метки файловой системы объекта, на который ссылается FileHandle, а в случае успеха выполняет обещание без аргументов.
writeFile(
data: string | Uint8Array,
options?: ,
): 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;
интерфейс promises.FileReadResult
Использование в Deno
import { type promises } from "node:fs";
type { FileReadResult } = promises;
интерфейс promises.FlagAndOpenMode
Использование в Deno
import { type promises } from "node:fs";
type { FlagAndOpenMode } = promises;
интерфейс promises.ReadableWebStreamOptions
Использование в Deno
import { type promises } from "node:fs";
type { ReadableWebStreamOptions } = promises;
Свойства
type: "bytes" | undefined Открывать обычный поток или поток 'bytes'.
интерфейс ReadAsyncOptions
Использование в Deno
import { type ReadAsyncOptions } from "node:fs";
интерфейс ReadStreamOptions
Использование в Deno
import { type ReadStreamOptions } from "node:fs";
интерфейс ReadSyncOptions
Использование в Deno
import { type ReadSyncOptions } from "node:fs";
интерфейс ReadVResult
Использование в Deno
import { type ReadVResult } from "node:fs";
интерфейс 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() интерфейс StatsBase
Использование в Deno
import { type StatsBase } from "node:fs";
Параметры типа
T Свойства
Методы
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
Использование в Deno
import { type StatsFsBase } from "node:fs";
Параметры типа
T Свойства
интерфейс StatSyncFn
Использование в Deno
import { type StatSyncFn } from "node:fs";
Сигнатуры вызова
(
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,
): интерфейс StatSyncOptions
Использование в Deno
import { type StatSyncOptions } from "node:fs";
Свойства
throwIfNoEntry: boolean | undefined интерфейс StatWatcher
Использование в 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: 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
Использование в Deno
import { type WatchOptions } from "node:fs";
Свойства
encoding:
BufferEncoding
| "buffer"
| undefined
persistent: boolean | undefined recursive: boolean | undefined интерфейс WriteStreamOptions
Использование в Deno
import { type WriteStreamOptions } from "node:fs";
интерфейс WriteVResult
Использование в Deno
import { type WriteVResult } from "node:fs";
Свойства
bytesWritten: number buffers: ArrayBufferView[] пространство имён constants
Использование в Deno
import { constants } from "node:fs";
Переменные
Константа для fs.copyFile. Флаг, указывающий, что файл назначения не следует перезаписывать, если он уже существует.
Константа для fs.copyFile. Операция копирования попытается создать reflink с копированием при записи. Если базовая платформа не поддерживает копирование при записи, используется резервный механизм копирования.
Константа для fs.copyFile. Операция копирования попытается создать reflink с копированием при записи. Если базовая платформа не поддерживает копирование при записи, операция завершится ошибкой.
Константа для fs.access(). Файл виден вызывающему процессу.
Константа для fs.open(). Флаг, указывающий, что данные будут добавляться в конец файла.
Константа для fs.open(). Флаг, указывающий, что файл следует создать, если он ещё не существует.
Константа для fs.open(). При установке этого флага предпринимается попытка свести к минимуму влияние кэширования на операции ввода-вывода файлов.
Константа для fs.open(). Флаг, указывающий, что открытие должно завершиться ошибкой, если путь не является каталогом.
Константа для fs.open(). Флаг, указывающий, что файл открыт для синхронного ввода-вывода, при котором операции записи ожидают обеспечения целостности данных.
Константа для fs.open(). Флаг, указывающий, что открытие файла должно завершиться ошибкой, если установлен флаг O_CREAT и файл уже существует.
Константа для fs.open(). Флаг, указывающий, что операции чтения файловой системы больше не будут обновлять сведения atime, связанные с файлом. Этот флаг доступен только в операционных системах Linux.
Константа для fs.open(). Флаг, указывающий, что если путь указывает на терминальное устройство, его открытие не должно приводить к тому, что этот терминал станет управляющим терминалом процесса (если у процесса ещё нет управляющего терминала).
Константа для fs.open(). Флаг, указывающий, что открытие должно завершиться ошибкой, если путь является символической ссылкой.
Константа для fs.open(). Флаг, указывающий, что файл следует открыть в неблокирующем режиме, если это возможно.
Константа для fs.open(). Флаг, указывающий, что файл следует открыть только для чтения.
Константа для fs.open(). Флаг, указывающий, что файл следует открыть для чтения и записи.
Константа для fs.open(). Флаг, указывающий, что следует открыть саму символическую ссылку, а не ресурс, на который она указывает.
Константа для fs.open(). Флаг, указывающий, что файл открыт для синхронного ввода-вывода.
Константа для fs.open(). Флаг, указывающий, что если файл существует и является обычным файлом, а открыть его для записи удалось, его размер должен быть усечён до нуля.
Константа для fs.open(). Флаг, указывающий, что файл следует открыть только для записи.
Константа для fs.access(). Файл доступен вызывающему процессу для чтения.
Константа для свойства mode объекта fs.Stats, используемая для определения типа файла. Константа типа файла для блочного устройства.
Константа для свойства mode объекта fs.Stats, используемая для определения типа файла. Константа типа файла для символьного устройства.
Константа для свойства mode объекта fs.Stats, используемая для определения типа файла. Константа типа файла для каталога.
Константа для свойства mode объекта fs.Stats, используемая для определения типа файла. Константа типа файла для FIFO/канала.
Константа для свойства mode объекта fs.Stats, используемая для определения типа файла. Константа типа файла для символической ссылки.
Константа для свойства mode объекта fs.Stats, используемая для определения типа файла. Битовая маска для извлечения кода типа файла.
Константа для свойства mode объекта fs.Stats, используемая для определения типа файла. Константа типа файла для обычного файла.
Константа для свойства mode объекта fs.Stats, используемая для определения типа файла. Константа типа файла для сокета.
Константа для свойства mode объекта fs.Stats, используемая для определения разрешений доступа к файлу. Режим файла, указывающий на право чтения для группы.
Константа для свойства mode объекта fs.Stats, используемая для определения разрешений доступа к файлу. Режим файла, указывающий на право чтения для остальных пользователей.
Константа для свойства mode объекта fs.Stats, используемая для определения разрешений доступа к файлу. Режим файла, указывающий на право чтения для владельца.
Константа для свойства mode объекта fs.Stats, используемая для определения разрешений доступа к файлу. Режим файла, указывающий на права чтения, записи и выполнения для группы.
Константа для свойства mode объекта fs.Stats, используемая для определения разрешений доступа к файлу. Режим файла, указывающий на права чтения, записи и выполнения для остальных пользователей.
Константа для свойства mode объекта fs.Stats, используемая для определения разрешений доступа к файлу. Режим файла, указывающий на права чтения, записи и выполнения для владельца.
Константа для свойства mode объекта fs.Stats, используемая для определения разрешений доступа к файлу. Режим файла, указывающий на право записи для группы.
Константа для свойства mode объекта fs.Stats, используемая для определения разрешений доступа к файлу. Режим файла, указывающий на право записи для остальных пользователей.
Константа для свойства mode объекта fs.Stats, используемая для определения разрешений доступа к файлу. Режим файла, указывающий на право записи для владельца.
Константа для свойства mode объекта fs.Stats, используемая для определения разрешений доступа к файлу. Режим файла, указывающий на право выполнения для группы.
Константа для свойства mode объекта fs.Stats, используемая для определения разрешений доступа к файлу. Режим файла, указывающий на право выполнения для остальных пользователей.
Константа для свойства mode объекта fs.Stats, используемая для определения разрешений доступа к файлу. Режим файла, указывающий на право выполнения для владельца.
При установке этого флага для доступа к файлу используется отображение файла в память. Этот флаг доступен только в операционных системах Windows. В других операционных системах он игнорируется.
Константа для fs.access(). Файл доступен вызывающему процессу для записи.
Константа для fs.access(). Файл доступен вызывающему процессу для выполнения.
пространство имён promises
Использование в Deno
import { promises } from "node:fs";
API fs/promises предоставляет асинхронные методы файловой системы, возвращающие промисы.
API промисов использует базовый пул потоков Node.js для выполнения операций файловой системы вне потока цикла событий. Эти операции не синхронизированы и не являются потокобезопасными. При одновременном выполнении нескольких операций изменения одного и того же файла следует соблюдать осторожность, иначе возможно повреждение данных.
Функции
Проверяет разрешения пользователя для файла или каталога, указанного в 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.
Асинхронно добавляет данные в файл, создавая его, если он ещё не существует. data может быть строкой или Buffer.
Изменяет разрешения файла.
Изменяет владельца файла.
Асинхронно копирует src в dest. По умолчанию dest перезаписывается, если уже существует.
Асинхронно копирует всю структуру каталогов из src в dest, включая подкаталоги и файлы.
Возвращает файлы, соответствующие указанному шаблону.
Изменяет владельца символической ссылки.
Создаёт новую ссылку с existingPath на newPath. Дополнительные сведения см. в документации POSIX link(2).
Эквивалентно fsPromises.stat(), если только path не является символической ссылкой. В этом случае проверяется сама ссылка, а не файл, на который она указывает. Дополнительные сведения см. в документе POSIX lstat(2).
Изменяет время доступа и модификации файла так же, как fsPromises.utimes(), но если путь указывает на символическую ссылку, ссылка не разыменовывается: вместо этого изменяются временные метки самой символической ссылки.
Асинхронно создаёт каталог.
Создаёт уникальный временный каталог. Уникальное имя каталога формируется добавлением шести случайных символов в конец заданного prefix. Из-за различий между платформами не используйте завершающие символы X в prefix. Некоторые платформы, в частности BSD, могут возвращать более шести случайных символов и заменять завершающие символы X в prefix случайными символами.
Открывает FileHandle.
Асинхронно открывает каталог для итеративного сканирования. Дополнительные сведения см. в документации POSIX opendir(3).
Читает содержимое каталога.
Асинхронно читает всё содержимое файла.
Читает содержимое символической ссылки, на которую указывает path. Дополнительные сведения см. в документации POSIX readlink(2). В случае успеха промис выполняется с linkString.
Определяет фактическое расположение path, используя ту же семантику, что и функция fs.realpath.native().
Переименовывает oldPath в newPath.
Удаляет файлы и каталоги (по образцу стандартной утилиты POSIX rm).
Удаляет каталог, указанный в path.
Создаёт символическую ссылку.
Усекает (уменьшает или увеличивает длину) содержимое по адресу path до len байт.
Если path указывает на символическую ссылку, ссылка удаляется без воздействия на файл или каталог, на который она ссылается. Если path указывает на путь к файлу, не являющемуся символической ссылкой, файл удаляется. Дополнительные сведения см. в документации POSIX unlink(2).
Изменяет временные метки файловой системы объекта, на который указывает path.
Возвращает асинхронный итератор, отслеживающий изменения в filename, где filename — это файл или каталог.
Асинхронно записывает данные в файл, заменяя его, если он уже существует. data может быть строкой, буфером, объектом AsyncIterable или объектом Iterable.
Интерфейсы
Переменные
псевдоним типа 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";
Определение
псевдоним типа 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 псевдоним типа 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";
псевдоним типа 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) — получение сведений о файле. Не разыменовывает символические ссылки.
Тип
переменная promises.constants
Использование в Deno
import { promises } from "node:fs";
const { constants } = promises;
Тип
fsConstants переменная statSync
Использование в Deno
import { statSync } from "node:fs";
Синхронный stat(2) — получить информацию о файле.
Тип
© 2018–2025 the Deno authors
Licensed under the MIT License.
https://docs.deno.com/api/node/fs