Como obter os detalhes de um arquivo usando Node.js

Todo arquivo vem com um conjunto de detalhes que nós podemos inspecionar usando Node.js.

Em particular, usando o método stat() do módulo fs.

Você o chama passando o caminho do arquivo, e uma vez que o Node.js obtenha os detalhes do arquivo ele chamará a função callback que você passar, com 2 parâmetros: uma mensagem de erro, e os detalhes do arquivo.

const fs = require('fs')
fs.stat('/Users/pauloluan/test.txt', (err, stats) => {
if (err) {
console.error(err)
return
}
// nós temos acesso aos detalhes do arquivo no `stats`
})

O Node.js também fornece um método síncrono, que bloqueia a thread até que os detalhes do arquivo estejam prontos:

const fs = require('fs')
try {
const stats = fs.statSync('/Users/pauloluan/test.txt')
} catch (err) {
console.error(err)
}

As informações do arquivo estão inclusas na variável stats. Que tipos de informações nós podemos extrair usando o stats?

Muitas, incluindo:

  • se o arquivo é um diretório ou um arquivo, usando stats.isFile() e stats.isDirectory()
  • se o arquivo é um link simbólico, usando stats.isSymbolicLink()
  • o tamanho do arquivo, usando stats.size.

Há outros métodos avançados, mas a maior parte do que você vai usar na programação do dia a dia são esses.

const fs = require('fs')
fs.stat('/Users/pauloluan/test.txt', (err, stats) => {
if (err) {
console.error(err)
return
}
stats.isFile() // true
stats.isDirectory() // false
stats.isSymbolicLink() // false
stats.size // 1024000 //= 1MB
})