Путь
Этот модуль содержит утилиты для обработки и преобразования путей к файлам. Почти все эти методы выполняют только преобразования строк. Система файлов не используется для проверки на валидность путей.
Используйте require('path') для использования этого модуля. Предоставляются следующие методы:
path.basename(p[, ext])
Возвращает последнюю часть пути. Аналогично команде Unix basename.
Пример:
path.basename('/foo/bar/baz/asdf/quux.html')
// returns 'quux.html'
path.basename('/foo/bar/baz/asdf/quux.html', '.html')
// returns 'quux'
path.delimiter
Разделитель пути, специфичный для платформы, ; или ':'.
Пример на *nix:
console.log(process.env.PATH) // '/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin' process.env.PATH.split(path.delimiter) // returns ['/usr/bin', '/bin', '/usr/sbin', '/sbin', '/usr/local/bin']
Пример на Windows:
console.log(process.env.PATH) // 'C:\Windows\system32;C:\Windows;C:\Program Files\node\' process.env.PATH.split(path.delimiter) // returns ['C:\\Windows\\system32', 'C:\\Windows', 'C:\\Program Files\\node\\']
path.dirname(p)
Возвращает имя каталога пути. Аналогично команде Unix dirname.
Пример:
path.dirname('/foo/bar/baz/asdf/quux')
// returns '/foo/bar/baz/asdf'
path.extname(p)
Возвращает расширение пути, начиная с последней точки '.' до конца строки в последней части пути. Если в последней части пути нет точки '.' или первый символ - точка, возвращает пустую строку. Примеры:
path.extname('index.html')
// returns '.html'
path.extname('index.coffee.md')
// returns '.md'
path.extname('index.')
// returns '.'
path.extname('index')
// returns ''
path.extname('.index')
// returns ''
path.format(pathObject)
Возвращает строку пути из объекта, противоположное path.parse.
Примеры:
Примеры для некоторых систем Posix:
// If `dir` and `base` are provided, `dir` + platform separator + `base`
// will be returned.
path.format({
dir: '/home/user/dir',
base: 'file.txt'
});
// returns '/home/user/dir/file.txt'
// `base` will be returned if `dir` or `root` are not provided.
path.format({
base: 'file.txt'
});
// returns 'file.txt'
path.isAbsolute(path)
Определяет, является ли path абсолютным путём. Абсолютный путь всегда будет ссылаться на одно и то же местоположение, независимо от текущей рабочей директории.
Примеры для Posix:
path.isAbsolute('/foo/bar') // true
path.isAbsolute('/baz/..') // true
path.isAbsolute('qux/') // false
path.isAbsolute('.') // false
Примеры для Windows:
path.isAbsolute('//server') // true
path.isAbsolute('C:/foo/..') // true
path.isAbsolute('bar\\baz') // false
path.isAbsolute('.') // false
Примечание: Если переданная строка пути имеет нулевую длину, в отличие от других функций модуля path, она будет использована как есть, и будет возвращено false.
path.join([path1][, path2][, ...])
Объединяет все аргументы вместе и нормализует полученный путь.
Аргументы должны быть строками. В версии v0.8 нестроковые аргументы игнорировались. В версиях v0.10 и выше выбрасывается исключение.
Пример:
path.join('/foo', 'bar', 'baz/asdf', 'quux', '..')
// returns '/foo/bar/baz/asdf'
path.join('foo', {}, 'bar')
// throws exception
TypeError: Arguments to path.join must be strings
Примечание: Если аргументы для join содержат строки нулевой длины, в отличие от других функций модуля path, они будут проигнорированы. Если объединённая строка пути имеет нулевую длину, будет возвращена '.' , представляющая текущую рабочую директорию.
path.normalize(p)
Нормализует строковый путь, учитывая '..' и '.' части.
При обнаружении нескольких слэшей они заменяются одним; при наличии конечного слэша он сохраняется. В Windows используются обратные слэши.
Пример:
path.normalize('/foo/bar//baz/asdf/quux/..')
// returns '/foo/bar/baz/asdf'
Примечание: Если переданная строка пути имеет нулевую длину, будет возвращена '.', представляющая текущую рабочую директорию.
path.parse(pathString)
Возвращает объект из строки пути.
Пример для *nix:
path.parse('/home/user/dir/file.txt')
// returns
// {
// root : "/",
// dir : "/home/user/dir",
// base : "file.txt",
// ext : ".txt",
// name : "file"
// }
Пример для Windows:
path.parse('C:\\path\\dir\\index.html')
// returns
// {
// root : "C:\\",
// dir : "C:\\path\\dir",
// base : "index.html",
// ext : ".html",
// name : "index"
// }
path.posix
Предоставляет доступ к вышеупомянутым path методам, но всегда взаимодействует с posix совместимым способом.
path.relative(from, to)
Вычисляет относительный путь от from до to.
Иногда у нас есть два абсолютных пути, и нам нужно получить относительный путь от одного к другому. Это фактически обратное преобразование path.resolve, что означает:
path.resolve(from, path.relative(from, to)) == path.resolve(to)
Примеры:
path.relative('C:\\orandea\\test\\aaa', 'C:\\orandea\\impl\\bbb')
// returns '..\\..\\impl\\bbb'
path.relative('/data/orandea/test/aaa', '/data/orandea/impl/bbb')
// returns '../../impl/bbb'
Примечание: Если аргументы для relative содержат строки нулевой длины, вместо них будет использована текущая рабочая директория. Если оба пути одинаковы, будет возвращена строка нулевой длины.
path.resolve([from ...], to)
Преобразует to в абсолютный путь.
Если to не является абсолютным, аргументы from добавляются справа налево, пока не будет найден абсолютный путь. Если после использования всех from путей абсолютный путь не найден, используется текущая рабочая директория. Результирующий путь нормализуется, и конечные слэши удаляются, если путь не резолвится в корневую директорию. Нестроковые from аргументы игнорируются.
Другой способ представить это – как последовательность команд cd в оболочке.
path.resolve('foo/bar', '/tmp/file/', '..', 'a/../subfile')
Аналогично:
cd foo/bar cd /tmp/file/ cd .. cd a/../subfile pwd
Разница в том, что разные пути не обязательно должны существовать и могут также быть файлами.
Примеры:
path.resolve('/foo/bar', './baz')
// returns '/foo/bar/baz'
path.resolve('/foo/bar', '/tmp/file/')
// returns '/tmp/file'
path.resolve('wwwroot', 'static_files/png/', '../gif/image.gif')
// if currently in /home/myself/node, it returns
// '/home/myself/node/wwwroot/static_files/gif/image.gif'
Примечание: Если аргументы для resolve содержат строки нулевой длины, вместо них будет использована текущая рабочая директория.
path.sep
Разделитель файла, специфичный для платформы. '\\' или '/'.
Пример на *nix:
'foo/bar/baz'.split(path.sep) // returns ['foo', 'bar', 'baz']
Пример на Windows:
'foo\\bar\\baz'.split(path.sep) // returns ['foo', 'bar', 'baz']
path.win32
Предоставляет доступ к вышеупомянутым path методам, но всегда взаимодействует с совместимым с win32 способом.
© Joyent, Inc. and other Node contributors
Licensed under the MIT License.
Node.js is a trademark of Joyent, Inc. and is used with its permission.
We are not endorsed by or affiliated with Joyent.
https://nodejs.org/dist/latest-v4.x/docs/api/path.html