Si une API pouvait récupérer un nom de fichier à partir d’un chemin de fichier absolu?
par exemple "foo.txt"
de "/var/www/foo.txt"
Je sais que cela fonctionne avec les opérations sur les chaînes, comme fullpath.replace(/.+\//, '')
mais je veux savoir s’il y a un moyen plus formel, comme file.getName()
dans java, pourrait le faire.
NodeJS obtient le nom du fichier du chemin absolu?
Utilisez la méthode basename
du module path
:
path.basename('/foo/bar/baz/asdf/quux.html') // returns 'quux.html'
Voici la documentation de l’exemple ci-dessus.
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 nom_base en indiquant à Node de ne renvoyer que 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 l’indique l’exemple de votre question, vous pouvez restr simple et diviser la chaîne par séparateur:
'/foo/bar/baz/asdf/quux.html'.split('/').pop()
Ce serait plus rapide (et plus propre) que de remplacer par une expression régulière.
Pour ceux qui souhaitent supprimer une 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');