Pages

🆘Différence entre URL et File path !

Voici trois écritures du chemin d'accès à un même fichier :

// URL

const fileURL = 'file:///C:/Users/username/Documents/fichier.json';


// Equivalent file path

const filePath = 'C:\\Users\\username\\Documents\\fichier.json';


// Equivalent file path in Git Bash

const filePath = '/c/Users/username/Documents/fichier.json';


// Equivalent file path

Notez que dans les chemins de fichiers Windows, les barres obliques inverses (\) sont utilisées comme séparateurs, mais dans les chaînes JavaScript, les barres obliques inverses sont des caractères d'échappement, et doivent donc être échappées elles-mêmes avec une autre barre oblique inversée. 


🚀En action : 

Un chemin d'accès est une chaîne de caractères qui spécifie l'emplacement d'un fichier dans un système de fichiers. Il peut être absolu ou relatif. Voici un exemple de lecture d'un fichier à l'aide d'un chemin d'accès dans Node.js :

const fs = require('fs');

const path = require('path');

// Absolute file path

const absoluteFilePath = path.join(__dirname, '2024-03-18-feed.json');

fs.readFile(absoluteFilePath, 'utf8', (err, data) => {

  if (err) {

    console.error(err);

    return;

  }

  console.log(data);

});


Une URL (Uniform Resource Locator) est une référence à une ressource web qui spécifie son emplacement sur un réseau informatique et un mécanisme pour la récupérer. 

🥷Dans Node.js, vous pouvez également utiliser les URL pour les chemins d'accès aux fichiers, ce qui est particulièrement utile pour les projets de développement. 

import { readFile } from 'fs/promises';

import { fileURLToPath } from 'url';

import { dirname } from 'path';


// URL for the current module

const currentModuleURL = new URL(import.meta.url);


// Convert the URL to a file path

const currentModulePath = dirname(fileURLToPath(currentModuleURL));


// Use the file path to read a file

const data = await readFile(`${currentModulePath}/2024-03-14-feed.json`, 'utf8');

console.log(data);

Dans ce deuxième exemple, import.meta.url fournit une URL pour le module en cours. Cette URL est ensuite convertie en chemin de fichier à l'aide de fileURLToPath, et le chemin de fichier est utilisé pour lire un fichier.

La principale différence entre les deux est que les chemins d'accès aux fichiers sont spécifiques au système de fichiers et sont utilisés pour lire/écrire des fichiers, tandis que les URL sont plus généraux et peuvent être utilisés pour localiser des ressources sur Internet ou sur un réseau local, en plus du système de fichiers local.