Modulo modulo base

modulo f

Il modulo fs è un modulo operativo del file system. Fornisce operazioni di I/O su disco come la lettura di file, la scrittura di file, l'apertura di file, la chiusura di file, la modifica delle autorizzazioni dei file, ecc. e supporta sia l'utilizzo sincrono che asincrono. Il modulo fs fornisce anche una funzione di monitoraggio dei file, che può monitorare le modifiche nei file e nelle directory nel file system e richiamare la funzione specificata.

Ad esempio, per leggere un file in fibjs, puoi utilizzare il metodo readFile del modulo fs:

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

Se vuoi leggere il file in modo asincrono, puoi farlo tramite un callback:

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

Allo stesso modo, se vuoi scrivere su un file, puoi usare il metodo writeFile del modulo fs:

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

Se vuoi scrivere un file in modo asincrono, puoi farlo tramite un callback:

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.'); });

Oltre a leggere e scrivere file, il modulo fs fornisce anche una serie di altre operazioni sul file system, come la creazione di directory, la modifica dei permessi dei file, l'interrogazione dello stato dei file, ecc.

Alcuni punti da notare:

  • L'esecuzione fs.watch(filename)restituirà un valore ereditato daEventEmitterwatcher, che supporta tre eventi: 'change', 'changeonly', 'renameonly'
  • fs.watchFile(target)e fs.unwatchFile(target)possono ancora essere utilizzati in coppia
  • fs.watchFile(target)restituirà un valore ereditato daEventEmitterDiStatsWatcherOggetto, call fs.unwatchFile(target)equivale a call StatsWatcher.close().
  • Poiché uv è implementato su Linux, fs.watchl' recursiveopzione è supportata stabilmente solo in win32/darwin. Puoi comunque provare ad usarla in Linux fs.watch('/[path](path.md)/to', { recursive: true }, handler), ma potresti scoprire che handleri tempi di essere richiamati sono diversi da quelli previsti.

oggetto

constants

Oggetti costanti del modulo fs

1
fs_constants fs.constants;

funzione statica

exists

Interroga se il file o la directory specificati esiste

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

Parametri di chiamata:

  • path: String, specifica il percorso da interrogare

Risultati restituiti:

  • Boolean, restituisce True per indicare che il file o la directory esiste

access

Interroga le autorizzazioni dell'utente sul file specificato

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

Parametri di chiamata:

  • path: String, specifica il percorso da interrogare
  • mode: numero intero, specifica l'autorizzazione alla query, l'impostazione predefinita indica se il file esiste

Crea un file di collegamento reale, questo metodo non è supportato in Windows

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

Parametri di chiamata:

  • oldPath: stringa, file sorgente
  • newPath: String, il file da creare

Elimina il file specificato

1
static fs.unlink(String path) async;

Parametri di chiamata:

  • path: String, specifica il percorso da eliminare

mkdir

Crea una directory

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

Parametri di chiamata:

  • path: String, specifica il nome della directory da creare
  • mode: Numero intero, specifica i permessi dei file, Windows ignora questo parametro, valore predefinito: 0777

Crea una directory

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

Parametri di chiamata:

  • path: String, specifica il nome della directory da creare
  • opt: Oggetto, specifica i parametri di creazione

I parametri di creazione possono contenere i seguenti valori:

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

rmdir

Elimina una directory

1
static fs.rmdir(String path) async;

Parametri di chiamata:

  • path: String, specifica il nome della directory da eliminare

rename

Rinominare un file

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

Parametri di chiamata:

  • from: String, specifica il file da rinominare
  • to: String, specifica il nuovo nome file da modificare

copyFile

Copia src in dest. Per impostazione predefinita, se dest esiste già, viene sovrascritto.

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

Parametri di chiamata:

  • from: String, specifica il nome del file di origine da copiare
  • to: String, specifica il nome del file di destinazione da copiare.
  • mode: Numero intero, specifica il modificatore dell'operazione di copia, il valore predefinito è 0

mode è un numero intero facoltativo che specifica il comportamento dell'operazione di copia. Puoi creare una maschera composta da un OR bit a bit di due o più valori (es.fs.constants.COPYFILE_EXCL |fs.constants.COPYFILE_FICLONE).

  • fs.constants.COPYFILE_EXCL - Se la destinazione esiste già, l'operazione di copia fallirà.
  • fs.constants.COPYFILE_FICLONE: l'operazione di copia tenterà di creare un collegamento copia su scrittura. Se la piattaforma non supporta la copia su scrittura, viene utilizzato un meccanismo di copia di fallback.
  • fs.constants.COPYFILE_FICLONE_FORCE: l'operazione di copia tenterà di creare un collegamento copia su scrittura. Se la piattaforma non supporta la copia su scrittura, l'operazione di copia fallirà.

chmod

Imposta le autorizzazioni di accesso per il file specificato. Windows non supporta questo metodo.

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

Parametri di chiamata:

  • path: Stringa, file che specifica l'operazione
  • mode: Numero intero, specifica i permessi di accesso impostati

lchmod

Imposta le autorizzazioni di accesso del file specificato. Se il file è un collegamento software, le autorizzazioni che puntano al file non verranno modificate. È disponibile solo su piattaforme della serie macOS e BSD.

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

Parametri di chiamata:

  • path: Stringa, file che specifica l'operazione
  • mode: Numero intero, specifica i permessi di accesso impostati

chown

Imposta il proprietario del file specificato. Windows non supporta questo metodo.

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

Parametri di chiamata:

  • path: stringa, impostazioni di specifica del file
  • uid: numero intero, ID utente del proprietario del file
  • gid: numero intero, ID gruppo proprietario del file

lchown

Imposta il proprietario del file specificato. Se il file specificato è un collegamento software, il proprietario del file a cui punta non verrà modificato. Windows non supporta questo metodo.

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

Parametri di chiamata:

  • path: stringa, impostazioni di specifica del file
  • uid: numero intero, ID utente del proprietario del file
  • gid: numero intero, ID gruppo proprietario del file

stat

Interroga le informazioni di base del file specificato

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

Parametri di chiamata:

  • path: String, specifica il file da interrogare

Risultati restituiti:

  • Stat, restituisce le informazioni di base del file

lstat

Interroga le informazioni di base del file specificato. Diverso da stat, quandopathQuando si tratta di un collegamento software, le informazioni restituite saranno le informazioni di questo collegamento software anziché le informazioni del file puntato.

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

Parametri di chiamata:

  • path: String, specifica il file da interrogare

Risultati restituiti:

  • Stat, restituisce le informazioni di base del file

fstat

Interroga le informazioni di base del file specificato

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

Parametri di chiamata:

Risultati restituiti:

  • Stat, restituisce le informazioni di base del file

Leggere il file di collegamento software specificato. Questo metodo non è supportato in Windows.

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

Parametri di chiamata:

  • path: String, specifica il file di collegamento software da leggere

Risultati restituiti:

  • String, restituisce il nome del file a cui punta il soft link

realpath

Restituisce il percorso assoluto del percorso specificato. Se il percorso specificato contiene un percorso relativo, verrà anch'esso espanso.

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

Parametri di chiamata:

  • path: String, specifica il percorso da leggere

Risultati restituiti:

  • String, restituisce il percorso assoluto elaborato

Crea un file di collegamento software

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

Parametri di chiamata:

  • target: stringa, file di destinazione, che può essere un file, una directory o un percorso inesistente
  • linkpath: String, il file soft link da creare
  • type: Stringa, il tipo di connessione software creata, i tipi opzionali sono 'file', 'dir', 'giunzione', il valore predefinito è 'file', questo parametro è valido solo su Windows, quando è 'giunzione', la destinazione verrà creato. Il percorso linkpath deve essere un percorso assoluto e la destinazione verrà automaticamente convertita in un percorso assoluto.

truncate

Modifica la dimensione del file. Se la lunghezza specificata è maggiore della dimensione del file di origine, verrà riempita con "\0", altrimenti il ​​contenuto del file in eccesso andrà perso.

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

Parametri di chiamata:

  • path: String, specifica il percorso del file modificato
  • len: Numero intero, specifica la dimensione del file modificato

read

Leggere il contenuto del file in base al descrittore del file

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

Parametri di chiamata:

  • fd:FileHandle, oggetto descrittore di file
  • buffer:Buffer, viene scritto il risultato della letturaBufferoggetto
  • offset: Numero intero,BufferOffset di scrittura, il valore predefinito è 0
  • length: Numero intero, il numero di byte letti dal file, il valore predefinito è 0
  • position: Numero intero, posizione di lettura del file, l'impostazione predefinita è la posizione del file corrente

Risultati restituiti:

  • Integer, il numero effettivo di byte letti

fchmod

Modificare la modalità file in base al descrittore del file. Valido solo su sistemi POSIX.

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

Parametri di chiamata:

  • fd:FileHandle, oggetto descrittore di file
  • mode: Intero, la modalità del file

fchown

A seconda del descrittore del file, modificare il proprietario. Valido solo su sistemi POSIX.

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

Parametri di chiamata:

  • fd:FileHandle, oggetto descrittore di file
  • uid: numero intero, ID utente
  • gid: numero intero, ID gruppo

fdatasync

Sincronizza i dati su disco in base al descrittore di file

1
static fs.fdatasync(FileHandle fd) async;

Parametri di chiamata:


fsync

Sincronizza i dati su disco in base al descrittore di file

1
static fs.fsync(FileHandle fd) async;

Parametri di chiamata:


readdir

Leggere le informazioni sul file dalla directory specificata

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

Parametri di chiamata:

  • path: String, specifica la directory da interrogare

Risultati restituiti:

  • NArray, restituisce l'array di informazioni sul file della directory

Leggere le informazioni sul file dalla directory specificata

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

Parametri di chiamata:

  • path: String, specifica la directory da interrogare
  • opts: Oggetto, specificare i parametri

Risultati restituiti:

  • NArray, restituisce l'array di informazioni sul file della directory

Le opzioni supportate dal parametro opts sono le seguenti:

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

openFile

Aprire un file per la lettura, la scrittura o entrambi

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

Parametri di chiamata:

  • fname: Stringa, specifica il nome del file
  • flags: String, specifica il metodo di apertura del file, il valore predefinito è "r", modalità di sola lettura

Risultati restituiti:

I metodi supportati per i flag dei parametri sono i seguenti:

  • 'r' Modalità di sola lettura, genera un errore se il file non esiste.
  • Modalità di lettura e scrittura 'r+', genera un errore se il file non esiste.
  • "w" è la modalità di sola scrittura. Se il file non esiste, verrà creato automaticamente. Se esiste, verrà cancellato.
  • Modalità di lettura e scrittura 'w+', il file verrà creato automaticamente se non esiste.
  • 'a' scrive solo il metodo add e il file verrà creato automaticamente se non esiste.
  • Modalità di aggiunta lettura-scrittura 'a+', il file verrà creato automaticamente se non esiste.

open

descrittore di file aperto

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

Parametri di chiamata:

  • fname: Stringa, specifica il nome del file
  • flags: String, specifica il metodo di apertura del file, il valore predefinito è "r", modalità di sola lettura
  • mode: Numero intero, quando si crea un file, specificare la modalità file, predefinita 0666

Risultati restituiti:

  • FileHandle, restituisce il descrittore del file aperto

I metodi supportati per i flag dei parametri sono i seguenti:

  • 'r' Modalità di sola lettura, genera un errore se il file non esiste.
  • Modalità di lettura e scrittura 'r+', genera un errore se il file non esiste.
  • "w" è la modalità di sola scrittura. Se il file non esiste, verrà creato automaticamente. Se esiste, verrà cancellato.
  • Modalità di lettura e scrittura 'w+', il file verrà creato automaticamente se non esiste.
  • 'a' scrive solo il metodo add e il file verrà creato automaticamente se non esiste.
  • Modalità di aggiunta lettura-scrittura 'a+', il file verrà creato automaticamente se non esiste.

close

chiudi il descrittore del file

1
static fs.close(FileHandle fd) async;

Parametri di chiamata:


openTextStream

Apri un file di testo per la lettura, la scrittura o entrambi

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

Parametri di chiamata:

  • fname: Stringa, specifica il nome del file
  • flags: String, specifica il metodo di apertura del file, il valore predefinito è "r", modalità di sola lettura

Risultati restituiti:

I metodi supportati per i flag dei parametri sono i seguenti:

  • 'r' Modalità di sola lettura, genera un errore se il file non esiste.
  • Modalità di lettura e scrittura 'r+', genera un errore se il file non esiste.
  • "w" è la modalità di sola scrittura. Se il file non esiste, verrà creato automaticamente. Se esiste, verrà cancellato.
  • Modalità di lettura e scrittura 'w+', il file verrà creato automaticamente se non esiste.
  • 'a' scrive solo il metodo add e il file verrà creato automaticamente se non esiste.
  • Modalità di aggiunta lettura-scrittura 'a+', il file verrà creato automaticamente se non esiste.

readTextFile

Apri un file di testo e leggine il contenuto

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

Parametri di chiamata:

  • fname: Stringa, specifica il nome del file

Risultati restituiti:

  • String, restituisce il contenuto testuale del file

readFile

Apri il file e leggi il contenuto

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

Parametri di chiamata:

  • fname: Stringa, specifica il nome del file
  • encoding: String, specifica il metodo di decodifica, per impostazione predefinita non viene eseguita alcuna decodifica

Risultati restituiti:

  • Variant, restituisce il contenuto testuale del file

Apri il file e leggi il contenuto

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

Parametri di chiamata:

  • fname: Stringa, specifica il nome del file
  • options: Oggetto, specifica le opzioni di lettura

Risultati restituiti:

  • Variant, restituisce il contenuto testuale del file

Le opzioni supportate dalle opzioni sono le seguenti:

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

readLines

Apri il file e leggi una serie di righe di testo in modalità array. L'identificatore di fine riga si basa sull'impostazione dell'attributo EOL. Per impostazione predefinita, posix: "\n"; windows: "\r\n"

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

Parametri di chiamata:

  • fname: Stringa, specifica il nome del file
  • maxlines: Numero intero, specifica il numero massimo di righe da leggere questa volta. Per impostazione predefinita, vengono lette tutte le righe di testo.

Risultati restituiti:

  • Array, restituisce un array di righe di testo lette. Se non ci sono dati da leggere o la connessione viene interrotta, l'array sarà vuoto.

write

Scrivere il contenuto nel file in base al descrittore di file

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

Parametri di chiamata:

  • fd:FileHandle, oggetto descrittore di file
  • buffer:Buffer, da scrivereBufferoggetto
  • offset: Numero intero,BufferOffset lettura dati, il valore predefinito è 0
  • length: Numero intero, il numero di byte scritti nel file, il valore predefinito è -1
  • position: Numero intero, posizione di scrittura del file, l'impostazione predefinita è la posizione del file corrente

Risultati restituiti:

  • Integer, il numero effettivo di byte scritti

Scrivere il contenuto nel file in base al descrittore di file

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

Parametri di chiamata:

  • fd:FileHandle, oggetto descrittore di file
  • string: String, la stringa da scrivere
  • position: Numero intero, posizione di scrittura del file, l'impostazione predefinita è la posizione del file corrente
  • encoding: String, specifica il metodo di decodifica, la decodifica predefinita è utf8

Risultati restituiti:

  • Integer, il numero effettivo di byte scritti

writeTextFile

Crea un file di testo e scrivi il contenuto

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

Parametri di chiamata:

  • fname: Stringa, specifica il nome del file
  • txt: String, specifica la stringa da scrivere

writeFile

Crea file binario e scrivi contenuto

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

Parametri di chiamata:

  • fname: Stringa, specifica il nome del file
  • data:Buffer, specifica i dati binari da scrivere
  • opt: La stringa, specifica le opzioni di scrittura, verrà ignorata

Crea file binario e scrivi contenuto

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

Parametri di chiamata:

  • fname: Stringa, specifica il nome del file
  • data:Buffer, specifica i dati binari da scrivere
  • options: L'oggetto, specifica le opzioni di scrittura, verrà ignorato

Creare un file e scrivere il contenuto

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

Parametri di chiamata:

  • fname: Stringa, specifica il nome del file
  • data: String, specifica i dati da scrivere
  • opt: Stringa, specifica le opzioni di scrittura

Creare un file e scrivere il contenuto

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

Parametri di chiamata:

  • fname: Stringa, specifica il nome del file
  • data: String, specifica i dati da scrivere
  • options: Oggetto, specifica le opzioni di scrittura

Le opzioni supportate dalle opzioni sono le seguenti:

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

appendFile

Crea file binario e scrivi contenuto

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

Parametri di chiamata:

  • fname: Stringa, specifica il nome del file
  • data:Buffer, specifica i dati binari da scrivere

setZipFS

impostarezipmappatura dei file virtuali

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

Parametri di chiamata:

  • fname: String, specifica il percorso di mappatura
  • data:Buffer, specifica la mappaturazipdati dell'archivio

clearZipFS

Chiarozipmappatura dei file virtuali

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

Parametri di chiamata:

  • fname: String, specifica il percorso di mappatura, cancella tutte le cache per impostazione predefinita

watch

Guarda un file e restituisce l'oggetto watcher corrispondente

1
static FSWatcher fs.watch(String fname);

Parametri di chiamata:

  • fname: String, specifica l'oggetto file da osservare

Risultati restituiti:


Guarda un file e restituisce l'oggetto watcher corrispondente

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

Parametri di chiamata:

  • fname: String, specifica l'oggetto file da osservare
  • callback: Funzione, (evtType: 'change' | 'rename', filename: string) => anyil callback di elaborazione quando l'oggetto file cambia

Risultati restituiti:


Guarda un file e restituisce l'oggetto watcher corrispondente

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

Parametri di chiamata:

  • fname: String, specifica l'oggetto file da osservare
  • options: Oggetto, opzioni di osservazione

Risultati restituiti:

Le opzioni supportate dalle opzioni sono le seguenti:

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. }

Guarda un file e restituisce l'oggetto watcher corrispondente

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

Parametri di chiamata:

  • fname: String, specifica l'oggetto file da osservare
  • options: Oggetto, opzioni di osservazione
  • callback: Funzione, (evtType: 'change' | 'rename', filename: string) => anyil callback di elaborazione quando l'oggetto file cambia

Risultati restituiti:

Le opzioni supportate dalle opzioni sono le seguenti:

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

Osservare un file e restituire il corrispondenteStatsWatcheroggetto

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

Parametri di chiamata:

  • fname: String, specifica l'oggetto file da osservare
  • callback: Funzione, (curStats: Stats, prevStats: Stats) => anyil callback dell'elaborazione quando cambiano le statistiche dell'oggetto file.

Risultati restituiti:


Osservare un file e restituire il corrispondenteStatsWatcheroggetto

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

Parametri di chiamata:

  • fname: String, specifica l'oggetto file da osservare
  • options: Oggetto, opzioni di osservazione
  • callback: Funzione, (curStats: Stats, prevStats: Stats) => anyil callback dell'elaborazione quando cambiano le statistiche dell'oggetto file.

Risultati restituiti:

Le opzioni supportate dalle opzioni sono le seguenti:

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

Dall'osservazione di fnameStatsWatcherRimuovi tutti i callback degli eventi di osservazione da

1
static fs.unwatchFile(String fname);

Parametri di chiamata:

  • fname: String, specifica l'oggetto file da osservare

Risultati restituiti:


Dall'osservazione di fnameStatsWatchercallbackRimuovere la richiamata dalla richiamata dell'evento di osservazione

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

Parametri di chiamata:

  • fname: String, specifica l'oggetto file da osservare
  • callback: Funzione, la richiamata da rimuovere

Risultati restituiti:

Anche se la richiamata non c'è piùStatsWatcherNessun errore verrà segnalato nel callback dell'evento di osservazione

costante

SEEK_SET

cerca la costante del metodo, spostati nella posizione assoluta

1
const fs.SEEK_SET = 0;

SEEK_CUR

costante del metodo di ricerca, spostati nella posizione relativa della posizione corrente

1
const fs.SEEK_CUR = 1;

SEEK_END

costante della modalità di ricerca, sposta alla posizione relativa della fine del file

1
const fs.SEEK_END = 2;