Spec-Zone.ru › Node.js 4 LTS

Путь

Стабильность: 2 - Стабильно

Этот модуль содержит утилиты для обработки и преобразования путей к файлам. Почти все эти методы выполняют только преобразования строк. Система файлов не используется для проверки на валидность путей.

Используйте require('path') для использования этого модуля. Предоставляются следующие методы:

path.basename(p[, ext])

Добавлен в: v0.1.25

Возвращает последнюю часть пути. Аналогично команде 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

Добавлен в: v0.9.3

Разделитель пути, специфичный для платформы, ; или ':'.

Пример на *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)

Добавлен в: v0.1.16

Возвращает имя каталога пути. Аналогично команде Unix dirname.

Пример:

path.dirname('/foo/bar/baz/asdf/quux')
// returns '/foo/bar/baz/asdf'

path.extname(p)

Добавлен в: v0.1.25

Возвращает расширение пути, начиная с последней точки '.' до конца строки в последней части пути. Если в последней части пути нет точки '.' или первый символ - точка, возвращает пустую строку. Примеры:

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)

Добавлен в: v0.11.15

Возвращает строку пути из объекта, противоположное 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)

Добавлен в: v0.11.2

Определяет, является ли 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.1.16

Объединяет все аргументы вместе и нормализует полученный путь.

Аргументы должны быть строками. В версии 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)

Добавлен в: v0.1.23

Нормализует строковый путь, учитывая '..' и '.' части.

При обнаружении нескольких слэшей они заменяются одним; при наличии конечного слэша он сохраняется. В Windows используются обратные слэши.

Пример:

path.normalize('/foo/bar//baz/asdf/quux/..')
// returns '/foo/bar/baz/asdf'

Примечание: Если переданная строка пути имеет нулевую длину, будет возвращена '.', представляющая текущую рабочую директорию.

path.parse(pathString)

Добавлен в: v0.11.15

Возвращает объект из строки пути.

Пример для *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

Добавлен в: v0.11.15

Предоставляет доступ к вышеупомянутым path методам, но всегда взаимодействует с posix совместимым способом.

path.relative(from, to)

Добавлен в: v0.5.0

Вычисляет относительный путь от 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)

Добавлен в: v0.3.4

Преобразует 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

Добавлен в: v0.7.9

Разделитель файла, специфичный для платформы. '\\' или '/'.

Пример на *nix:

'foo/bar/baz'.split(path.sep)
// returns ['foo', 'bar', 'baz']

Пример на Windows:

'foo\\bar\\baz'.split(path.sep)
// returns ['foo', 'bar', 'baz']

path.win32

Добавлен в: v0.11.15

Предоставляет доступ к вышеупомянутым 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API