nodejs récupère le nom du fichier à partir du chemin absolu?
Si une API peut récupérer le nom du fichier à partir d'un chemin de fichier absolu?
Par exemple "foo.txt"
de "/var/www/foo.txt"
Je sais que cela fonctionne avec une opération de chaîne, comme fullpath.replace(/.+//, '')
mais je veux savoir s'il existe une manière plus "formelle", comme file.getName()
en java, qui pourrait le faire.
NodeJS récupère le nom du fichier à partir du chemin absolu?
4 réponses
Utilisez la méthode basename
du module path
:
path.basename('/foo/bar/baz/asdf/quux.html')
// returns
'quux.html'
Ici est la documentation de l'exemple ci-dessus est prise.
Pour obtenir la partie nom de fichier du nom de fichier, la méthode basename est utilisée:
var path = require("path");
var fileName = "C:\\Python27\\ArcGIS10.2\\python.exe";
var file = path.basename(fileName);
Console.log(fichier); Si vous voulez le nom de fichier sans l'extension, vous pouvez passer la variable d'extension (contenant le nom de l'extension) à la méthode basename indiquant à Node de renvoyer uniquement le nom sans l'extension:
var path = require("path");
var fileName = "C:\\Python27\\ArcGIS10.2\\python.exe";
var extension = path.extname(fileName);
var file = path.basename(fileName,extension);
console.log(file);
Si vous savez déjà que le séparateur de chemin est /
(c'est-à-dire que vous écrivez pour une plate-forme/un environnement spécifique), comme le suggère l'exemple de votre question, vous pouvez rester simple et diviser la chaîne par séparateur:
'/foo/bar/baz/asdf/quux.html'.split('/').pop()
Ce serait plus rapide (et plus propre imo) que de remplacer par une expression régulière.
Pour ceux qui sont intéressés à supprimer l'extension du nom de fichier, vous pouvez utiliser https://nodejs.org/api/path.html#path_path_basename_path_ext
path.basename('/foo/bar/baz/asdf/quux.html', '.html');