nodejs получить имя файла из полного пути?


если какой-либо API может получить имя файла из абсолютного пути к файлу?

например "foo.txt" с "/var/www/foo.txt"

Я знаю, что он работает со строкой операции, как fullpath.replace(/.+//, '') но я хочу знать, есть ли более "формальный" способ, как file.getName() в Java, может сделать это.

NodeJS получить имя файла из полного пути?

4 174

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');