Cada arquivo no sistema tem um caminho.
No Linux e no macOS, um caminho pode ter a seguinte aparência:
/users/joe/arquivo.txt
enquanto os computadores Windows são diferentes e possuem uma estrutura como:
C:\users\joe\arquivo.txt
Você precisa ficar atento ao usar path em suas aplicações, pois essa diferença deve ser levada em consideração.
Você inclui este módulo em seus arquivos usando
const path = require('path');
e você pode começar a usar seus métodos.
Dado um caminho, você pode extrair informações dele usando esses métodos:
-
dirname
: obtém a pasta pai de um arquivo. -
basename
: obtém uma parte do nome do arquivo. -
extname
: obtém a extensão do arquivo.
Exemplo:
const notes = '/users/joe/notes.txt';
path.dirname(notes); // /users/joe
path.basename(notes); // notes.txt
path.extname(notes); // .txt
Você pode obter o nome do arquivo sem a extensão especificando um segundo argumento para basename
:
path.basename(notes, path.extname(notes)); // notes
Você pode unir duas ou mais partes de um caminho usando path.join()
:
const name = 'joe';
path.join('/', 'users', name, 'notes.txt'); // '/users/joe/notes.txt'
Você pode obter o cálculo do caminho completo por meio de um caminho relativo usando o path.resolve()
:
path.resolve('joe.txt'); // '/Users/joe/joe.txt' se estiver executando na pasta home
Nesse caso, o Node.js simplesmente anexará /joe.txt
ao diretório de trabalho atual. Se você especificar uma segunda pasta de parâmetro, o resolve
usará a primeira como base para a segunda:
path.resolve('tmp', 'joe.txt'); // '/Users/joe/tmp/joe.txt' se estiver executando da pasta home
Se o primeiro parâmetro começar com uma barra, isso significa que é um caminho absoluto ou completo:
path.resolve('/etc', 'joe.txt'); // '/etc/joe.txt'
path.normalize()
é outra função útil, que tentará calcular o caminho real, quando contiver especificadores relativos como .
ou ..
, ou barras duplas:
path.normalize('/users/joe/..//test.txt'); // '/users/test.txt'
Nem o resolve
nem normalize
verificam se o caminho existe. Eles apenas calculam um caminho com base nas informações que obtiveram.