Como detectar o caminho fornecido é um arquivo ou diretório em Node.js?

Como Detectar O Caminho Fornecido E Um Arquivo Ou Diretorio Em Node Js



Detectar a entidade do arquivo é importante especialmente quando seus aplicativos lidam com o gerenciamento de um arquivo ou armazenam dados do usuário em diretórios específicos. Como diretórios únicos podem conter vários arquivos, a operação que pode ser aplicada a eles envolve a movimentação de arquivos para outro diretório ou a exclusão de todos os arquivos residentes.

O mesmo acontece com um arquivo, suas operações podem incluir a modificação do arquivo, a inserção de dados no arquivo ou a exclusão de um único. Todo o aplicativo ficará confuso se o desenvolvedor aplicar operações de arquivo em diretórios ou vice-versa.

Este artigo ilustrará as abordagens para detectar se o caminho fornecido é um arquivo ou diretório, abordando estes métodos:







Como detectar o caminho fornecido é um arquivo ou diretório em Node.js?

Existem dois métodos fornecidos pelo “ fs ”módulo ou seja“ éDiretório() ' e ' isArquivo() ”que tem o único propósito de verificar se o caminho fornecido leva a um arquivo ou diretório. Esses métodos são usados ​​em cenários síncronos e assíncronos usando o “ estatísticaSincronização() ' e ' Estado() ' métodos. Esses dois métodos são demonstrados abaixo para detectar se o caminho fornecido leva a um arquivo ou diretório.



Método 1: O método “statSync()” para detectar o caminho que leva ao diretório ou arquivo

O ' estatísticaSincronização() ”método fornecido pelo “ fs ”módulo é basicamente usado para realizar operações síncronas. Este método, em nosso caso, armazena a instância do caminho fornecido apenas uma vez. Em seguida, ele atribui o “ éDiretório() ' e ' isArquivo() ”Métodos para retornar se o caminho especificado leva a um diretório ou arquivo.



Vamos visitar o trecho de código abaixo para a implementação prática do método “statSync()”:





const fsObj = exigir ( 'fs' ) ;

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

console. registro ( 'É fornecido o caminho que leva a um arquivo? ' + caminhoArquivo. éArquivo ( ) ) ;

caminhoDir = fsObj. statSync ( '/Usuários/kahou/Documentos/readlineProj' ) ;

console. registro ( 'É fornecido o caminho que leva a um diretório? ' + caminhoDir. éDiretório ( ) ) ;

A explicação para o código fornecido acima é apresentada abaixo:

  • Primeiro, importe o “ fs ”Módulo e armazene sua instância em um“ fsObj ' variável.
  • Em seguida, invoque o “ estatísticaSincronização() ”Método usando o“ fsObj ”variável e passe o caminho selecionado entre parênteses. Armazene a referência deste caminho dentro do “ caminhoArquivo ' variável.
  • Em seguida, atribua o “ isArquivo() ”Método com o“ caminhoArquivo ”Para retornar um valor booleano que mostrará se o caminho fornecido leva a um arquivo ou não.
  • Depois disso, invoque novamente o “ estatísticaSincronização() ”Método e passe o novo caminho.
  • Por fim, anexe o “ éDiretório() ”Método com o valor retornado pelo“ iniciarSincronização() ”Método.

Agora, execute o arquivo atual usando o comando abaixo:



'nó '

Por exemplo, executamos o arquivo “app.js”:

A saída mostra o valor de “ verdadeiro ”é retornado significa que os caminhos fornecidos são para a pasta e o arquivo foi detectado.

Método 2: O método “stat()” para detectar o caminho que leva ao diretório ou arquivo

Outro método que funciona perfeitamente para o ambiente assíncrono é conhecido como “ Estado() ”Método que é fornecido pelo“ fs ”módulo. Ele também usa o mesmo “ isArquivo() ' e ' éDiretório() ”Métodos, mas devido à sua natureza assíncrona, o caminho único pode ser passado para ambos os métodos. Ele possui dois parâmetros, o primeiro caminho de armazenamento e o segundo é uma função de retorno de chamada que executa algumas operações no caminho fornecido:

const fsObj = exigir ( 'fs' ) ,
caminho de teste = '/Usuários/kahou/Documentos/readlineProj'

//Use o método stat()
fsObj. Estado ( caminho de teste , ( erro , statObj ) => {
se ( ! erro ) {
se ( statObj. éArquivo ( ) ) {
console. registro ( ' \n Sim! O caminho fornecido leva a um arquivo? ' ) ;
}
outro se ( statObj. éDiretório ( ) ) {
console. registro ( ' \n Sim! Caminho fornecido leva a um diretório? ' ) ;
}
}
outro
lançar erro ;
} ) ;

A explicação para o código fornecido acima é mostrada abaixo:

  • Primeiro, importe o “ fs ”Módulo e armazene sua instância em um“ fsObj ' variável. Criar uma ' caminho de teste ”variável que armazena o caminho fornecido pelo testador.
  • Agora, invoque o “ Estado() ”Método e passe o“ caminho de teste ”Como o primeiro parâmetro e uma função de retorno de chamada como o segundo parâmetro.
  • A função de retorno de chamada contém “ erro ”Como o primeiro parâmetro e“ statObj ”como o segundo. O ' erro ”contém erros que surgem durante a execução e “startObj” tem o caminho fornecido.
  • Dentro da função, utilize o “ se ”Instrução que é executada se nenhum erro for encontrado.
  • O ' aninhado se ”Declarações são usadas para atribuir o“ isArquivo() ' e ' éDiretório() ”métodos com“ statObj ”.
  • Se os métodos retornarem “ verdadeiro ” só então essa seção é executada e exibe as mensagens de sucesso de acordo.

Após executar o script acima, o terminal aparece assim:

Como você pode ver, o caminho fornecido agora foi detectado e confirma que o caminho fornecido leva a um diretório.

Conclusão

Para detectar se o caminho fornecido é o caminho de um diretório ou arquivo em NodeJs, os métodos de “ isArquivo() ' e ' éDiretório ' são usados. Os caminhos acessíveis por esses métodos são fornecidos pelo “ estatísticaSincronização() ' e ' Estado() 'métodos do' fs ”Módulo NodeJs. Esses métodos armazenam os caminhos fornecidos de maneira síncrona e assíncrona, respectivamente. Este blog explicou o procedimento para detectar se o caminho fornecido leva a um arquivo ou diretório no NodeJS.