Módulo módulo básico

módulo fs

El módulo fs es un módulo de operación del sistema de archivos. Proporciona operaciones de E/S de disco, como leer archivos, escribir archivos, abrir archivos, cerrar archivos, cambiar permisos de archivos, etc., y admite el uso sincrónico y asincrónico. El módulo fs también proporciona una función de monitoreo de archivos, que puede monitorear cambios en archivos y directorios en el sistema de archivos y volver a llamar a la función especificada.

Por ejemplo, para leer un archivo en fibjs, puedes usar el método readFile del módulo fs:

1 2
var fs = require('fs'); var content = fs.readFile('/path/to/file');

Si desea leer el archivo de forma asincrónica, puede hacerlo mediante una devolución de llamada:

1 2 3 4 5
var fs = require('fs'); fs.readFile('/path/to/file', function(err, data) { if (err) throw err; console.log(data); });

De manera similar, si desea escribir en un archivo, puede usar el método writeFile del módulo fs:

1 2 3
var fs = require('fs'); var content = 'hello, world!'; fs.writeFile('/path/to/file', content);

Si desea escribir un archivo de forma asincrónica, puede hacerlo mediante una devolución de llamada:

1 2 3 4 5 6
var fs = require('fs'); var content = 'hello, world!'; fs.writeFile('/path/to/file', content, function(err) { if (err) throw err; console.log('File saved.'); });

Además de leer y escribir archivos, el módulo fs también proporciona una serie de otras operaciones del sistema de archivos, como crear directorios, modificar permisos de archivos, consultar el estado de los archivos, etc.

Algunos puntos a tener en cuenta:

  • La ejecución fs.watch(filename)devolverá un valor heredado deEventEmitterobservador, que admite tres eventos: 'cambiar', 'cambiar solo', 'renombrar solo'
  • fs.watchFile(target)y fs.unwatchFile(target)todavía se puede utilizar en pares
  • fs.watchFile(target)devolverá un valor heredado deEventEmitterdeStatsWatcherObjeto, llamar fs.unwatchFile(target)es equivalente a llamar StatsWatcher.close().
  • Debido a que uv está implementado en Linux, fs.watchla recursiveopción solo se admite de manera estable en win32/darwin. Aún puedes intentar usarla en Linux fs.watch('/[path](path.md)/to', { recursive: true }, handler), pero es posible que handlerel momento en que te devuelvan la llamada sea diferente de lo que esperabas.

objeto

constants

Objetos constantes del módulo fs.

1
fs_constants fs.constants;

función estática

exists

Consultar si el archivo o directorio especificado existe

1
static Boolean fs.exists(String path) async;

Parámetros de llamada:

  • path: Cadena, especifique la ruta a consultar

Resultados de devolución:

  • Boolean, devuelve True para indicar que el archivo o directorio existe

access

Consultar los permisos del usuario en el archivo especificado.

1 2
static fs.access(String path, Integer mode = 0) async;

Parámetros de llamada:

  • path: Cadena, especifique la ruta a consultar
  • mode: Entero, especifica el permiso de consulta, el valor predeterminado es si el archivo existe

Cree un archivo de enlace físico; este método no es compatible con Windows

1 2
static fs.link(String oldPath, String newPath) async;

Parámetros de llamada:

  • oldPath: Cadena, archivo fuente
  • newPath: Cadena, el archivo a crear

Eliminar el archivo especificado

1
static fs.unlink(String path) async;

Parámetros de llamada:

  • path: Cadena, especifica la ruta a eliminar

mkdir

Crear un directorio

1 2
static fs.mkdir(String path, Integer mode = 0777) async;

Parámetros de llamada:

  • path: Cadena, especifique el nombre del directorio que se creará
  • mode: Entero, especifica permisos de archivos, Windows ignora este parámetro, valor predeterminado: 0777

Crear un directorio

1 2
static fs.mkdir(String path, Object opt) async;

Parámetros de llamada:

  • path: Cadena, especifique el nombre del directorio que se creará
  • opt: Objeto, especificar parámetros de creación

Los parámetros de creación pueden contener los siguientes valores:

1 2 3 4
{ recursive: false, // specify whether parent directories should be created. Default: false mode: 0777 // specify the file mode. Default: 0777 }

rmdir

Eliminar un directorio

1
static fs.rmdir(String path) async;

Parámetros de llamada:

  • path: Cadena, especifica el nombre del directorio que se eliminará

rename

Cambiar el nombre de un archivo

1 2
static fs.rename(String from, String to) async;

Parámetros de llamada:

  • from: Cadena, especifica el archivo cuyo nombre se va a cambiar
  • to: Cadena, especifica el nuevo nombre del archivo que se modificará

copyFile

Copiar origen al destino. De forma predeterminada, si el destino ya existe, se sobrescribe.

1 2 3
static fs.copyFile(String from, String to, Integer mode = 0) async;

Parámetros de llamada:

  • from: Cadena, especifica el nombre del archivo fuente que se copiará
  • to: Cadena, especifica el nombre del archivo de destino que se copiará.
  • mode: Entero, especifica el modificador de la operación de copia, el valor predeterminado es 0

modo es un entero opcional que especifica el comportamiento de la operación de copia. Puede crear una máscara que consista en un OR bit a bit de dos o más valores (p. ej.fs.constants.COPYFILE_EXCL |fs.constants.COPYFILE_FICLONE).

  • fs.constants.COPYFILE_EXCL: si el destino ya existe, la operación de copia fallará.
  • fs.constants.COPYFILE_FICLONE: la operación de copia intentará crear un enlace de copia en escritura. Si la plataforma no admite la copia en escritura, se utiliza un mecanismo de copia alternativa.
  • fs.constants.COPYFILE_FICLONE_FORCE: la operación de copia intentará crear un enlace de copia en escritura. Si la plataforma no admite la copia en escritura, la operación de copia fallará.

chmod

Establezca permisos de acceso para el archivo especificado. Windows no admite este método.

1 2
static fs.chmod(String path, Integer mode) async;

Parámetros de llamada:

  • path: Cadena, archivo que especifica la operación.
  • mode: Entero, especifica los permisos de acceso establecidos

lchmod

Establezca los permisos de acceso del archivo especificado. Si el archivo es un enlace suave, los permisos que apuntan al archivo no se cambiarán. Solo está disponible en las plataformas de las series macOS y BSD.

1 2
static fs.lchmod(String path, Integer mode) async;

Parámetros de llamada:

  • path: Cadena, archivo que especifica la operación.
  • mode: Entero, especifica los permisos de acceso establecidos

chown

Establezca el propietario del archivo especificado. Windows no admite este método.

1 2 3
static fs.chown(String path, Integer uid, Integer gid) async;

Parámetros de llamada:

  • path: Cadena, archivo que especifica la configuración
  • uid: Entero, ID de usuario del propietario del archivo
  • gid: Entero, ID del grupo propietario del archivo

lchown

Establezca el propietario del archivo especificado. Si el archivo especificado es un enlace suave, el propietario del archivo al que apunta no se cambiará. Windows no admite este método.

1 2 3
static fs.lchown(String path, Integer uid, Integer gid) async;

Parámetros de llamada:

  • path: Cadena, archivo que especifica la configuración
  • uid: Entero, ID de usuario del propietario del archivo
  • gid: Entero, ID del grupo propietario del archivo

stat

Consultar la información básica del archivo especificado.

1
static Stat fs.stat(String path) async;

Parámetros de llamada:

  • path: Cadena, especifica el archivo a consultar

Resultados de devolución:

  • Stat, devuelve la información básica del archivo

lstat

Consulta la información básica del archivo especificado. A diferencia de stat, cuandopathCuando se trata de un enlace suave, la información devuelta será la información de este enlace suave en lugar de la información del archivo señalado.

1
static Stat fs.lstat(String path) async;

Parámetros de llamada:

  • path: Cadena, especifica el archivo a consultar

Resultados de devolución:

  • Stat, devuelve la información básica del archivo

fstat

Consultar la información básica del archivo especificado.

1
static Stat fs.fstat(FileHandle fd) async;

Parámetros de llamada:

Resultados de devolución:

  • Stat, devuelve la información básica del archivo

Lea el archivo de enlace suave especificado. Este método no es compatible con Windows.

1
static String fs.readlink(String path) async;

Parámetros de llamada:

  • path: Cadena, especifica el archivo de enlace suave que se va a leer

Resultados de devolución:

  • String, devuelve el nombre del archivo al que apunta el enlace suave

realpath

Devuelve la ruta absoluta de la ruta especificada. Si la ruta especificada contiene una ruta relativa, también se expandirá.

1
static String fs.realpath(String path) async;

Parámetros de llamada:

  • path: Cadena, especifica la ruta a leer

Resultados de devolución:

  • String, devuelve la ruta absoluta procesada

Crear archivo de enlace suave

1 2 3
static fs.symlink(String target, String linkpath, String type = "file") async;

Parámetros de llamada:

  • target: Cadena, archivo de destino, que puede ser un archivo, directorio o una ruta inexistente
  • linkpath: Cadena, el archivo de enlace suave que se creará
  • type: Cadena, el tipo de conexión suave creada, los tipos opcionales son 'archivo', 'dir', 'unión', el valor predeterminado es 'archivo', este parámetro solo es válido en Windows, cuando es 'unión', el destino Se creará La ruta linkpath debe ser una ruta absoluta y el objetivo se convertirá automáticamente en una ruta absoluta.

truncate

Modifique el tamaño del archivo. Si la longitud especificada es mayor que el tamaño del archivo de origen, se rellenará con '\0'; de lo contrario, se perderá el contenido sobrante del archivo.

1 2
static fs.truncate(String path, Integer len) async;

Parámetros de llamada:

  • path: Cadena, especifica la ruta del archivo modificado
  • len: Entero, especifica el tamaño del archivo modificado

read

Leer el contenido del archivo según el descriptor del archivo.

1 2 3 4 5
static Integer fs.read(FileHandle fd, Buffer buffer, Integer offset = 0, Integer length = 0, Integer position = -1) async;

Parámetros de llamada:

  • fd:FileHandle, objeto descriptor de archivo
  • buffer:Buffer, el resultado de la lectura se escribe enBufferobjeto
  • offset: Entero,BufferCompensación de escritura, el valor predeterminado es 0
  • length: Entero, el número de bytes leídos del archivo, el valor predeterminado es 0
  • position: Entero, posición de lectura del archivo, el valor predeterminado es la posición actual del archivo

Resultados de devolución:

  • Integer, el número real de bytes leídos

fchmod

Cambie el modo de archivo según el descriptor de archivo. Válido sólo en sistemas POSIX.

1 2
static fs.fchmod(FileHandle fd, Integer mode) async;

Parámetros de llamada:

  • fd:FileHandle, objeto descriptor de archivo
  • mode: Entero, el modo del archivo.

fchown

Dependiendo del descriptor del archivo, cambie el propietario. Válido sólo en sistemas POSIX.

1 2 3
static fs.fchown(FileHandle fd, Integer uid, Integer gid) async;

Parámetros de llamada:

  • fd:FileHandle, objeto descriptor de archivo
  • uid: Entero, identificación de usuario
  • gid: Entero, ID de grupo

fdatasync

Sincronizar datos al disco según el descriptor de archivo

1
static fs.fdatasync(FileHandle fd) async;

Parámetros de llamada:


fsync

Sincronizar datos al disco según el descriptor de archivo

1
static fs.fsync(FileHandle fd) async;

Parámetros de llamada:


readdir

Leer información del archivo del directorio especificado

1
static NArray fs.readdir(String path) async;

Parámetros de llamada:

  • path: Cadena, especifica el directorio a consultar

Resultados de devolución:

  • NArray, devuelve la matriz de información del archivo del directorio

Leer información del archivo del directorio especificado

1 2
static NArray fs.readdir(String path, Object opts = {}) async;

Parámetros de llamada:

  • path: Cadena, especifica el directorio a consultar
  • opts: Objeto, especificar parámetros

Resultados de devolución:

  • NArray, devuelve la matriz de información del archivo del directorio

Las opciones admitidas por el parámetro opts son las siguientes:

1 2 3
{ "recursive": false // specify whether all subdirectories should be watched or only the current directory }

openFile

Abrir un archivo para leer, escribir o ambos

1 2
static SeekableStream fs.openFile(String fname, String flags = "r") async;

Parámetros de llamada:

  • fname: Cadena, especifique el nombre del archivo
  • flags: Cadena, especifica el método de apertura del archivo, el valor predeterminado es "r", modo de solo lectura

Resultados de devolución:

Los métodos admitidos de indicadores de parámetros son los siguientes:

  • 'r' Modo de solo lectura, genera un error si el archivo no existe.
  • Modo de lectura y escritura 'r+', arroja un error si el archivo no existe.
  • 'w' es el modo de sólo escritura. Si el archivo no existe, se creará automáticamente. Si existe, se borrará.
  • Modo de lectura y escritura 'w+', el archivo se creará automáticamente si no existe.
  • 'a' solo escribe el método agregar y el archivo se creará automáticamente si no existe.
  • Modo de adición de lectura y escritura 'a+', el archivo se creará automáticamente si no existe.

open

abrir descriptor de archivo

1 2 3
static FileHandle fs.open(String fname, String flags = "r", Integer mode = 0666) async;

Parámetros de llamada:

  • fname: Cadena, especifique el nombre del archivo
  • flags: Cadena, especifica el método de apertura del archivo, el valor predeterminado es "r", modo de solo lectura
  • mode: Entero, al crear un archivo, especifique el modo de archivo, predeterminado 0666

Resultados de devolución:

  • FileHandle, devuelve el descriptor del archivo abierto

Los métodos admitidos de indicadores de parámetros son los siguientes:

  • 'r' Modo de solo lectura, genera un error si el archivo no existe.
  • Modo de lectura y escritura 'r+', arroja un error si el archivo no existe.
  • 'w' es el modo de sólo escritura. Si el archivo no existe, se creará automáticamente. Si existe, se borrará.
  • Modo de lectura y escritura 'w+', el archivo se creará automáticamente si no existe.
  • 'a' solo escribe el método agregar y el archivo se creará automáticamente si no existe.
  • Modo de adición de lectura y escritura 'a+', el archivo se creará automáticamente si no existe.

close

cerrar descriptor de archivo

1
static fs.close(FileHandle fd) async;

Parámetros de llamada:


openTextStream

Abrir un archivo de texto para leer, escribir o ambos

1 2
static BufferedStream fs.openTextStream(String fname, String flags = "r") async;

Parámetros de llamada:

  • fname: Cadena, especifique el nombre del archivo
  • flags: Cadena, especifica el método de apertura del archivo, el valor predeterminado es "r", modo de solo lectura

Resultados de devolución:

Los métodos admitidos de indicadores de parámetros son los siguientes:

  • 'r' Modo de solo lectura, genera un error si el archivo no existe.
  • Modo de lectura y escritura 'r+', arroja un error si el archivo no existe.
  • 'w' es el modo de sólo escritura. Si el archivo no existe, se creará automáticamente. Si existe, se borrará.
  • Modo de lectura y escritura 'w+', el archivo se creará automáticamente si no existe.
  • 'a' solo escribe el método agregar y el archivo se creará automáticamente si no existe.
  • Modo de adición de lectura y escritura 'a+', el archivo se creará automáticamente si no existe.

readTextFile

Abra un archivo de texto y lea su contenido.

1
static String fs.readTextFile(String fname) async;

Parámetros de llamada:

  • fname: Cadena, especifique el nombre del archivo

Resultados de devolución:

  • String, devuelve el contenido de texto del archivo

readFile

Abra el archivo y lea el contenido.

1 2
static Variant fs.readFile(String fname, String encoding = "") async;

Parámetros de llamada:

  • fname: Cadena, especifique el nombre del archivo
  • encoding: Cadena, especifica el método de decodificación, no se realiza ninguna decodificación de forma predeterminada

Resultados de devolución:

  • Variant, devuelve el contenido de texto del archivo

Abra el archivo y lea el contenido.

1 2
static Variant fs.readFile(String fname, Object options) async;

Parámetros de llamada:

  • fname: Cadena, especifique el nombre del archivo
  • options: Objeto, especifica opciones de lectura

Resultados de devolución:

  • Variant, devuelve el contenido de texto del archivo

Las opciones admitidas por opciones son las siguientes:

1 2 3
{ "encoding": "utf8" // specify the encoding, default is utf8. }

readLines

Abra el archivo y lea un conjunto de líneas de texto en modo de matriz. El identificador de fin de línea se basa en la configuración del atributo EOL. De forma predeterminada, posix: "\n"; windows: "\r\n"

1 2
static Array fs.readLines(String fname, Integer maxlines = -1);

Parámetros de llamada:

  • fname: Cadena, especifique el nombre del archivo
  • maxlines: Entero, especifica el número máximo de líneas que se leerán esta vez. De forma predeterminada, se leen todas las líneas de texto.

Resultados de devolución:

  • Array, devuelve una matriz de líneas de texto leídas. Si no hay datos para leer o la conexión se interrumpe, la matriz estará vacía.

write

Escriba el contenido en el archivo según el descriptor del archivo.

1 2 3 4 5
static Integer fs.write(FileHandle fd, Buffer buffer, Integer offset = 0, Integer length = -1, Integer position = -1) async;

Parámetros de llamada:

  • fd:FileHandle, objeto descriptor de archivo
  • buffer:Buffer, para ser escritoBufferobjeto
  • offset: Entero,BufferCompensación de lectura de datos, el valor predeterminado es 0
  • length: Entero, el número de bytes escritos en el archivo, el valor predeterminado es -1
  • position: Entero, ubicación de escritura del archivo, la ubicación predeterminada es la ubicación del archivo actual

Resultados de devolución:

  • Integer, el número real de bytes escritos

Escriba el contenido en el archivo según el descriptor del archivo.

1 2 3 4
static Integer fs.write(FileHandle fd, String string, Integer position = -1, String encoding = "utf8") async;

Parámetros de llamada:

  • fd:FileHandle, objeto descriptor de archivo
  • string: Cadena, la cadena a escribir
  • position: Entero, ubicación de escritura del archivo, la ubicación predeterminada es la ubicación del archivo actual
  • encoding: Cadena, especifica el método de decodificación, la decodificación predeterminada es utf8

Resultados de devolución:

  • Integer, el número real de bytes escritos

writeTextFile

Crea un archivo de texto y escribe el contenido.

1 2
static fs.writeTextFile(String fname, String txt) async;

Parámetros de llamada:

  • fname: Cadena, especifique el nombre del archivo
  • txt: Cadena, especifica la cadena que se escribirá

writeFile

Crear archivo binario y escribir contenido.

1 2 3
static fs.writeFile(String fname, Buffer data, String opt = "binary") async;

Parámetros de llamada:

  • fname: Cadena, especifique el nombre del archivo
  • data:Buffer, especifica los datos binarios que se escribirán
  • opt: Cadena, especifica opciones de escritura, será ignorada

Crear archivo binario y escribir contenido.

1 2 3
static fs.writeFile(String fname, Buffer data, Object options) async;

Parámetros de llamada:

  • fname: Cadena, especifique el nombre del archivo
  • data:Buffer, especifica los datos binarios que se escribirán
  • options: Objeto, especifica opciones de escritura, será ignorado

Crear un archivo y escribir contenido.

1 2 3
static fs.writeFile(String fname, String data, String opt = "utf8") async;

Parámetros de llamada:

  • fname: Cadena, especifique el nombre del archivo
  • data: Cadena, especifica los datos a escribir
  • opt: Cadena, especifica opciones de escritura

Crear un archivo y escribir contenido.

1 2 3
static fs.writeFile(String fname, String data, Object options) async;

Parámetros de llamada:

  • fname: Cadena, especifique el nombre del archivo
  • data: Cadena, especifica los datos a escribir
  • options: Objeto, especificar opciones de escritura

Las opciones admitidas por opciones son las siguientes:

1 2 3
{ "encoding": "utf8" // specify the encoding, default is utf8. }

appendFile

Crear archivo binario y escribir contenido.

1 2
static fs.appendFile(String fname, Buffer data) async;

Parámetros de llamada:

  • fname: Cadena, especifique el nombre del archivo
  • data:Buffer, especifica los datos binarios que se escribirán

setZipFS

configuraciónzipmapeo de archivos virtuales

1 2
static fs.setZipFS(String fname, Buffer data);

Parámetros de llamada:

  • fname: Cadena, especifica la ruta de mapeo
  • data:Buffer, especifica el mapeozipdatos del archivo

clearZipFS

Clarozipmapeo de archivos virtuales

1
static fs.clearZipFS(String fname = "");

Parámetros de llamada:

  • fname: Cadena, especifica la ruta de mapeo, borra todos los cachés de forma predeterminada

watch

Ver un archivo y devolver el objeto observador correspondiente

1
static FSWatcher fs.watch(String fname);

Parámetros de llamada:

  • fname: Cadena, especifica el objeto de archivo que se observará

Resultados de devolución:


Ver un archivo y devolver el objeto observador correspondiente

1 2
static FSWatcher fs.watch(String fname, Function callback);

Parámetros de llamada:

  • fname: Cadena, especifica el objeto de archivo que se observará
  • callback: Función, (evtType: 'change' | 'rename', filename: string) => anyla devolución de llamada de procesamiento cuando el objeto del archivo cambia

Resultados de devolución:


Ver un archivo y devolver el objeto observador correspondiente

1 2
static FSWatcher fs.watch(String fname, Object options);

Parámetros de llamada:

  • fname: Cadena, especifica el objeto de archivo que se observará
  • options: Objeto, opciones de observación

Resultados de devolución:

Las opciones admitidas por opciones son las siguientes:

1 2 3 4 5
{ "persistent": true, // specify whether the process should continue to run as long as files are being watched "recursive": false, // specify whether all subdirectories should be watched or only the current directory "encoding": "utf8", // specify the encoding, default is utf8. }

Ver un archivo y devolver el objeto observador correspondiente

1 2 3
static FSWatcher fs.watch(String fname, Object options, Function callback);

Parámetros de llamada:

  • fname: Cadena, especifica el objeto de archivo que se observará
  • options: Objeto, opciones de observación
  • callback: Función, (evtType: 'change' | 'rename', filename: string) => anyla devolución de llamada de procesamiento cuando el objeto del archivo cambia

Resultados de devolución:

Las opciones admitidas por opciones son las siguientes:

1 2 3 4 5
{ "persistent": true, // specify whether the process should continue to run as long as files are being watched "recursive": false, // specify whether all subdirectories should be watched or only the current directory "encoding": "utf8", // specify the encoding, default is utf8. }

watchFile

Observar un expediente y devolver el correspondiente.StatsWatcherobjeto

1 2
static StatsWatcher fs.watchFile(String fname, Function callback);

Parámetros de llamada:

  • fname: Cadena, especifica el objeto de archivo que se observará
  • callback: Función, (curStats: Stats, prevStats: Stats) => anyla devolución de llamada de procesamiento cuando cambian las estadísticas del objeto de archivo.

Resultados de devolución:


Observar un expediente y devolver el correspondiente.StatsWatcherobjeto

1 2 3
static StatsWatcher fs.watchFile(String fname, Object options, Function callback);

Parámetros de llamada:

  • fname: Cadena, especifica el objeto de archivo que se observará
  • options: Objeto, opciones de observación
  • callback: Función, (curStats: Stats, prevStats: Stats) => anyla devolución de llamada de procesamiento cuando cambian las estadísticas del objeto de archivo.

Resultados de devolución:

Las opciones admitidas por opciones son las siguientes:

1 2 3 4 5
{ "persistent": true, // specify whether the process should continue to run as long as files are being watched "recursive": false, // specify whether all subdirectories should be watched or only the current directory "encoding": "utf8", // specify the encoding, default is utf8. }

unwatchFile

De observar fname'sStatsWatcherEliminar todas las devoluciones de llamadas de eventos de observación de

1
static fs.unwatchFile(String fname);

Parámetros de llamada:

  • fname: Cadena, especifica el objeto de archivo que se observará

Resultados de devolución:


De observar fname'sStatsWatchercallbackEliminar la devolución de llamada de la devolución de llamada del evento de observación

1 2
static fs.unwatchFile(String fname, Function callback);

Parámetros de llamada:

  • fname: Cadena, especifica el objeto de archivo que se observará
  • callback: Función, la devolución de llamada que se eliminará

Resultados de devolución:

Incluso si la devolución de llamada ya no esStatsWatcherNo se informará ningún error en la devolución de llamada del evento de observación.

constante

SEEK_SET

buscar método constante, moverse a la posición absoluta

1
const fs.SEEK_SET = 0;

SEEK_CUR

buscar método constante, moverse a la posición relativa de la posición actual

1
const fs.SEEK_CUR = 1;

SEEK_END

Modo de búsqueda constante, moverse a la posición relativa del final del archivo.

1
const fs.SEEK_END = 2;