Module path de Node.js

Java FileModules intégrés de Node.js


de Node.jspathLe module est un module de base intégré, spécialement conçu pour gérer les chemins de fichiers et de répertoires.

path fournit une série de méthodes pratiques qui vous permettent de manipuler en toute sécurité et efficacement les chemins de fichiers dans différents environnements de systèmes d'exploitation.

Pourquoi avez-vous besoin du module path ?

Les différents systèmes d'exploitation utilisent différents séparateurs de chemin :

  • Windows utilise des barres obliques inverses\
  • Unix/Linux/macOS utilisent des barres obliques/

pathLe module gère automatiquement ces différences, ce qui permet à votre code de fonctionner correctement sur différentes plateformes.


Utilisation de base du module path

Importation du module path

const path = require('path');

Méthodes courantes

1. path.join([...paths]) - Joindre des chemins

Exemple

const fullPath = path.join('/user', 'documents', 'file.txt');
console.log(fullPath);
// Sous Unix, affiche : /user/documents/file.txt
// Sous Windows, affiche : \user\documents\file.txt

2. path.resolve([...paths]) - Résoudre un chemin absolu

Exemple

const absolutePath = path.resolve('src', 'app.js');
console.log(absolutePath);
// Affiche le chemin absolu dans le répertoire de travail actuel, par ex. : /home/user/project/src/app.js

3. path.basename(path[, ext]) - Obtenir le nom du fichier

Exemple

console.log(path.basename('/user/docs/file.txt')); // file.txt
console.log(path.basename('/user/docs/file.txt', '.txt')); // file

4. path.dirname(path) - Obtenir le nom du répertoire

Exemple

console.log(path.dirname('/user/docs/file.txt')); // /user/docs

5. path.extname(path) - Obtenir l'extension du fichier

Exemple

console.log(path.extname('index.html')); // .html
console.log(path.extname('file')); // Chaîne vide

Gestion des chemins multiplateforme

Séparateurs de chemin

  • path.sep- Séparateur de chemin spécifique à la plateforme

    console.log(path.sep); // Windows 输出 '\', Unix 输出 '/'
  • path.delimiter- Séparateur de chemin spécifique à la plateforme (utilisé dans la variable d'environnement PATH)

    console.log(path.delimiter); // Windows 输出 ';', Unix 输出 ':'

Normalisation des chemins

Utilisationpath.normalize(path)peut normaliser les chemins, en gérant les redondances.、..et les séparateurs :

Exemple

console.log(path.normalize('/user//docs/../file.txt')); // /user/file.txt

Analyse de chemin et conversion de format

path.parse(path) - Analyse un chemin en un objet

Exemple

const pathObj = path.parse('/user/docs/file.txt');
console.log(pathObj);
/*
{
  root: '/',
  dir: '/user/docs',
  base: 'file.txt',
  ext: '.txt',
  name: 'file'
}
*/

path.format(pathObject) - Construire un chemin à partir d'un objet

Exemple

const pathStr = path.format({
  dir: '/user/docs',
  name: 'file',
  ext: '.txt'
});
console.log(pathStr); // /user/docs/file.txt

Exemples d’application pratique

Exemple 1 : Construction de chemins de fichiers multiplateformes

Exemple

const configPath = path.join(__dirname, 'config', 'settings.json');
console.log(configPath);

Exemple 2 : Gestion des fichiers téléversés par l'utilisateur

Exemple

function saveUploadedFile(uploadDir, originalName) {
  const ext = path.extname(originalName);
  const baseName = path.basename(originalName, ext);
  const timestamp = Date.now();
  const newFileName = `${baseName}_${timestamp}${ext}`;
 
  return path.join(uploadDir, newFileName);
}

Exemple 3 : Vérification des extensions de fichiers

Exemple

function isImageFile(filename) {
  const ext = path.extname(filename).toLowerCase();
  return ['.jpg', '.jpeg', '.png', '.gif'].includes(ext);
}

Méthodes et propriétés

Les méthodes et propriétés du module path sont les suivantes :

MéthodeDescriptionExemple
path.basename(path[, ext])Renvoie la dernière partie du chemin (nom du fichier). Le paramètre facultatifextest utilisé pour supprimer l’extension du fichier.path.basename('/foo/bar/baz.txt'); // 输出: 'baz.txt'
path.dirname(path)Renvoie la partie répertoire du chemin.path.dirname('/foo/bar/baz.txt'); // 输出: '/foo/bar'
path.extname(path)Renvoie l’extension de fichier du chemin.path.extname('/foo/bar/baz.txt'); // 输出: '.txt'
path.join([...paths])Joint plusieurs chemins en un seul chemin, en gérant automatiquement les séparateurs de chemin.path.join('/foo', 'bar', 'baz/asdf', 'quux', '..'); // 输出: '/foo/bar/baz/asdf'
path.resolve([...paths])Résout une séquence de chemins en un chemin absolu, en traitant chaque segment de chemin de droite à gauche jusqu’à ce qu’un chemin absolu soit construit.path.resolve('/foo/bar', './baz'); // 输出: '/foo/bar/baz'
path.normalize(path)Normalise le chemin, en supprimant les éléments redondants.et.., et remplace les séparateurs de chemin selon le système d’exploitation actuel.path.normalize('/foo/bar//baz/asdf/quux/..'); // 输出: '/foo/bar/baz/asdf'
path.isAbsolute(path)Vérifie si le chemin est un chemin absolu.path.isAbsolute('/foo/bar'); // 输出: true
path.relative(from, to)Renvoie depuisfromle chemin verstole chemin relatif du chemin.path.relative('/foo/bar/baz', '/foo/bar/qux'); // 输出: '../qux'
path.parse(path)propriétés de l'élément sélectionné.root、dir、base、extetnameFormate l'objet chemin en une chaîne de chemin, qui estpath.parse('/home/user/dir/file.txt');l'inverse.{ root: '/', dir: '/home/user/dir', base: 'file.txt', ...}
path.format(pathObject)Fournit le séparateur de chemin du système d'exploitation actuel (POSIX estpath.parse, Windows estpath.format({ root: '/', dir: '/home/user/dir', base: 'file.txt' }); // 输出: '/home/user/dir/file.txt'
path.sepFournit le délimiteur de chemin (le séparateur entre les chemins dans les variables d'environnement), POSIX est'/', Windows est'\')。console.log(path.sep); // 输出: '\' (Windows) ou '/' (POSIX)
path.delimiterExemple:Exemple;。console.log(path.delimiter); // 输出: ';' (Windows) ou ':' (POSIX)

Exemple

Créez un fichier main.js, le code est le suivant :

Exemple

const path = require('path');

// Obtenir le nom du fichier
console.log('Nom du fichier:', path.basename('/foo/bar/baz.txt')); // Sortie: 'baz.txt'

// Obtenir le nom du répertoire
console.log('Nom du répertoire:', path.dirname('/foo/bar/baz.txt')); // Affiche : '/foo/bar'

// Obtenir l'extension
console.log('Extension :', path.extname('/foo/bar/baz.txt')); // Affiche : '.txt'

// Concaténer des chemins
console.log('Chemin joint :', path.join('/foo', 'bar', 'baz/asdf', 'quux', '..')); // Affiche : '/foo/bar/baz/asdf'

// Résoudre le chemin absolu
console.log('Chemin absolu :', path.resolve('/foo/bar', './baz')); // Affiche : '/foo/bar/baz'

// Normaliser le chemin
console.log('Chemin normalisé :', path.normalize('/foo/bar//baz/asdf/quux/..')); // Sortie : '/foo/bar/baz/asdf'

// Déterminer s'il s'agit d'un chemin absolu
console.log('Chemin absolu :', path.isAbsolute('/foo/bar')); // Sortie : true

// Chemin relatif
console.log('Chemin relatif :', path.relative('/foo/bar/baz', '/foo/bar/qux')); // Sortie : '../qux'

// Analyser le chemin en objet
const parsedPath = path.parse('/home/user/dir/file.txt');
console.log('Objet de chemin analysé :', parsedPath);
// Sortie : { root: '/', dir: '/home/user/dir', base: 'file.txt', ext: '.txt', name: 'file' }

// Formater l'objet en chemin
const formattedPath = path.format(parsedPath);
console.log('Formatted path:', formattedPath); // Sortie : '/home/user/dir/file.txt'

Java FileModules intégrés de Node.js

Autres extensions