Convert Path

Convert between POSIX and Windows paths.

Usage

var convertPath = require( '@stdlib/utils/convert-path' );

convertPath( from, to )

Converts between POSIX and Windows paths.

var p = convertPath( 'C:\\foo\\bar', 'posix' );
// returns '/c/foo/bar'

The following output path conventions are supported:

  • win32: Windows path convention; e.g., `C:\foo\bar'.
  • mixed: mixed path convention (Windows volume convention and POSIX path separator); e.g., C:/foo/bar.
  • posix: POSIX path convention; e.g., /c/foo/bar.

Notes

  • A Windows extended-length path cannot be converted to either a mixed or posix path convention, as forward slashes cannot be used as path separators.
  • If a POSIX path begins with /[A-Za-z]/ (e.g., /c/), the path is assumed to begin with a volume name.
  • The function makes no attempt to verify that a provided path is valid.

Examples

var convertPath = require( '@stdlib/utils/convert-path' );

var p1;
var p2;

p1 = '/c/foo/bar/beep.c';
p2 = convertPath( p1, 'win32' );
// returns 'c:\\foo\\bar\\beep.c'

p1 = '/c/foo/bar/beep.c';
p2 = convertPath( p1, 'mixed' );
// returns 'c:/foo/bar/beep.c'

p1 = '/c/foo/bar/beep.c';
p2 = convertPath( p1, 'posix' );
// returns '/c/foo/bar/beep.c'

p1 = 'C:\\\\foo\\bar\\beep.c';
p2 = convertPath( p1, 'win32' );
// returns 'C:\\\\foo\\bar\\beep.c'

p1 = 'C:\\\\foo\\bar\\beep.c';
p2 = convertPath( p1, 'mixed' );
// returns 'C:/foo/bar/beep.c'

p1 = 'C:\\\\foo\\bar\\beep.c';
p2 = convertPath( p1, 'posix' );
// returns '/c/foo/bar/beep.c'

CLI

Usage

Usage: convert-path [options] [<path>] --out=<output>

Options:

  -h,    --help                Print this message.
  -V,    --version             Print the package version.
  -o,    --out output          Output path convention.

Examples

$ convert-path /c/foo/bar --out=mixed
c:/foo/bar

To use as a standard stream,

$ echo -n '/c/foo/bar' | convert-path --out=win32
c:\foo\bar