Come rilevare il percorso fornito è un file o una directory in Node.js?

Come Rilevare Il Percorso Fornito E Un File O Una Directory In Node Js



Rilevare l'entità del file è importante soprattutto quando le tue applicazioni si occupano della gestione di un file o memorizzano i dati dell'utente in directory specifiche. Poiché una singola directory può contenere più file, l'operazione che può essere applicata ad essa comporta lo spostamento dei file in un'altra directory o la cancellazione di tutti i file residenti.

Lo stesso vale con un file, le sue operazioni possono includere la modifica del file, l'inserimento di dati nel file o la cancellazione di un singolo. L'intera applicazione verrà incasinata se lo sviluppatore applica operazioni sui file su directory o viceversa.

Questo articolo illustrerà gli approcci per rilevare se il percorso fornito è un file o una directory coprendo questi metodi:







Come rilevare il percorso fornito è un file o una directory in Node.js?

Sono due i metodi previsti dal “ fs ' modulo e cioè ' èDirectory() ' E ' èFile() ” che ha l'unico scopo di verificare se il percorso fornito porta a un file o una directory. Questi metodi vengono utilizzati sia in scenari sincroni che asincroni utilizzando il metodo ' statSync() ' E ' statistica() 'metodi. Questi due metodi sono illustrati di seguito per rilevare se il percorso fornito porta a un file o a una directory.



Metodo 1: il metodo “statSync()” per rilevare il percorso che conduce alla directory o al file

IL ' statSync() 'metodo fornito dal “ fs ' modulo è fondamentalmente utilizzato per eseguire operazioni sincrone. Questo metodo nel nostro caso memorizza l'istanza del percorso fornito solo una volta. Quindi, assegna il ' èDirectory() ' E ' èFile() ' metodi per restituire se il percorso specificato porta a una directory o a un file.



Visitiamo lo snippet di codice seguente per l'implementazione pratica del metodo 'statSync()':





cost fsObj = richiedere ( 'fs' ) ;

lascia pathFile = fsObj. statSync ( '/Users/kahou/Documents/readlineProj/mcu.db' ) ;

consolle. tronco d'albero ( 'Viene fornito il percorso che conduce a un file? ' + percorsoFile. isFile ( ) ) ;

pathDir = fsObj. statSync ( '/Utenti/kahou/Documenti/readlineProj' ) ;

consolle. tronco d'albero ( 'Viene fornito il percorso che conduce a una directory? ' + pathDir. isDirectory ( ) ) ;

La spiegazione per il codice sopra fornito è riportata di seguito:

  • Innanzitutto, importa il ' fs ' e memorizza la sua istanza in un modulo ' fsObj 'variabile.
  • Quindi, invoca il ' statSync() ' metodo utilizzando il metodo ' fsObj ' variabile e passa il percorso selezionato all'interno della sua parentesi. Memorizza il riferimento di questo percorso all'interno del “ percorsoFile 'variabile.
  • Successivamente, assegna il ' èFile() ' metodo con il ' percorsoFile ' per restituire un valore booleano che mostrerà se il percorso fornito porta o meno a un file.
  • Successivamente, invoca nuovamente il ' statSync() ” e passare il nuovo percorso.
  • Infine, allega il “ èDirectory() ' con il valore restituito dal metodo ' startSync() ' metodo.

Ora esegui il file corrente utilizzando il comando seguente:



'nodo '

Ad esempio, abbiamo eseguito il file 'app.js':

L'output mostra il valore di ' VERO ' viene restituito significa che i percorsi forniti riguardano la cartella e il file è stato rilevato.

Metodo 2: il metodo “stat()” per rilevare il percorso che conduce alla directory o al file

Un altro metodo che funziona perfettamente per l'ambiente asincrono è noto come ' statistica() ' Metodo fornito dal ' fs ' modulo. Utilizza anche lo stesso “ èFile() ' E ' èDirectory() ' ma a causa della sua natura asincrona, il singolo percorso può essere passato a entrambi i metodi. Ha due parametri, il primo memorizza il percorso e il secondo è una funzione di callback che esegue alcune operazioni sul percorso fornito:

cost fsObj = richiedere ( 'fs' ) ,
testPath = '/Utenti/kahou/Documenti/readlineProj'

// Usa il metodo stat()
fsObj. statistica ( testPath , ( errore , statObj ) => {
Se ( ! errore ) {
Se ( statObj. isFile ( ) ) {
consolle. tronco d'albero ( ' \N SÌ! Il percorso fornito porta a un file? ' ) ;
}
altro Se ( statObj. isDirectory ( ) ) {
consolle. tronco d'albero ( ' \N SÌ! Il percorso fornito conduce a una directory? ' ) ;
}
}
altro
gettare errore ;
} ) ;

La spiegazione per il codice sopra fornito è mostrata di seguito:

  • Innanzitutto, importa il ' fs ' e memorizza la sua istanza in un modulo ' fsObj 'variabile. Creare un ' testPath ' variabile che memorizza il percorso fornito dal tester.
  • Ora, invoca il ' statistica() ' e passare il metodo ' testPath ' come primo parametro e una funzione di callback come secondo parametro.
  • La funzione di callback contiene “ errore ' come primo parametro e ' statObj 'come il secondo. IL ' errore ' contiene errori che si verificano durante l'esecuzione e 'startObj' ha il percorso fornito.
  • All'interno della funzione, utilizzare il ' Se ' istruzione che viene eseguita se non viene trovato alcun errore.
  • IL ' annidato se Le istruzioni vengono utilizzate per assegnare il ' èFile() ' E ' èDirectory() ' metodi con ' statObj ”.
  • Se i metodi restituiscono “ VERO 'Solo allora quella sezione viene eseguita e visualizza i messaggi di successo di conseguenza.

Dopo aver eseguito lo script precedente, il terminale apparirà così:

Come puoi vedere, il percorso fornito viene ora rilevato e conferma che il percorso fornito porta a una directory.

Conclusione

Per rilevare se il percorso fornito è il percorso di una directory o di un file in NodeJs, i metodi di ' èFile() ' E ' isDirectory ' sono usati. I percorsi accessibili con queste modalità sono forniti dalla “ statSync() ' E ' statistica() ' metodi del ' fs ' Modulo NodeJs. Questi metodi memorizzano i percorsi forniti rispettivamente in modo sincrono e asincrono. Questo blog ha spiegato la procedura per rilevare se il percorso fornito porta a un file o una directory in NodeJS.