Chemins de fichiers Node.js
Chemins de fichiers système
Chaque fichier du système a un chemin. Sous Linux et macOS, un chemin peut ressembler à : /users/joe/file.txt
tandis que les ordinateurs Windows ont une structure différente telle que : C:\users\joe\file.txt
Vous devez faire attention lorsque vous utilisez des chemins dans vos applications, car cette différence doit être prise en compte.
Utilisation du module path
Vous incluez ce module dans vos fichiers en utilisant :
const path = require('node:path')et vous pouvez commencer à utiliser ses méthodes.
Extraire des informations d'un chemin
Étant donné un chemin, vous pouvez en extraire des informations à l'aide de ces méthodes :
dirname: récupère le dossier parent d'un fichierbasename: récupère la partie nom de fichierextname: récupère l'extension de fichier
Exemple
const path = require('node:path')
const notes = '/users/joe/notes.txt'
path.dirname(notes) // /users/joe
path.extname(notes) // .txtimport path from 'node:path'
const notes = '/users/joe/notes.txt'
path.dirname(notes) // /users/joe
path.extname(notes) // .txtVous pouvez obtenir le nom de fichier sans l'extension en spécifiant un deuxième argument à basename :
path.basename(notes, path.extname(notes)) // notesTravailler avec des chemins
Vous pouvez joindre deux ou plusieurs parties d'un chemin en utilisant path.join() :
path.join('/users', 'joe', 'file.txt') // /users/joe/file.txtVous pouvez obtenir le calcul du chemin absolu d'un chemin relatif en utilisant path.resolve() :
path.resolve('joe.txt') // /Users/joe/joe.txt si exécuté depuis mon dossier personnel
path.resolve('tmp', 'joe.txt') // /Users/joe/tmp/joe.txt si exécuté depuis mon dossier personnelDans ce cas, Node.js ajoutera simplement /joe.txt au répertoire de travail actuel. Si vous spécifiez un deuxième paramètre comme dossier, resolve utilisera le premier comme base pour le second.
Si le premier paramètre commence par une barre oblique, cela signifie qu'il s'agit d'un chemin absolu :
path.resolve('/etc', 'joe.txt') // /etc/joe.txtpath.normalize() est une autre fonction utile qui tentera de calculer le chemin réel lorsqu'il contient des spécificateurs relatifs comme . ou .., ou des doubles barres obliques :
path.normalize('/users/joe/../test.txt') // /users/test.txtNi resolve ni normalize ne vérifieront si le chemin existe. Ils calculent simplement un chemin basé sur les informations qu'ils ont obtenues.