nodejs получить имя файла из полного пути?
если какой-либо API может получить имя файла из абсолютного пути к файлу?
например "foo.txt"
с "/var/www/foo.txt"
Я знаю, что он работает со строкой операции, как fullpath.replace(/.+//, '')
но я хочу знать, есть ли более "формальный" способ, как file.getName()
в Java, может сделать это.
NodeJS получить имя файла из полного пути?
4 ответа:
использовать
basename
методpath
модуль:path.basename('/foo/bar/baz/asdf/quux.html') // returns 'quux.html'
здесь это документация, из которой взят приведенный выше пример.
чтобы получить имя файла часть имени файла, используется метод basename:
var path = require("path"); var fileName = "C:\Python27\ArcGIS10.2\python.exe"; var file = path.basename(fileName);
Если вы уже знаете, что сепаратор путь
/
(т. е. вы пишете для конкретной платформы / среды), как следует из примера в вашем вопросе, вы можете сохранить его простым и разделить строку разделителем:'/foo/bar/baz/asdf/quux.html'.split('/').pop()
что будет быстрее (и чище, ИМО), чем замена по регулярному выражению.
для тех, кто заинтересован в удалении расширение от имени файла, вы можете использовать https://nodejs.org/api/path.html#path_path_basename_path_ext
path.basename('/foo/bar/baz/asdf/quux.html', '.html');