Как преобразовать путь UNIX в путь DOS - PullRequest
3 голосов
/ 22 декабря 2010

Требуется регулярное выражение или какой-то другой метод для преобразования пути UNIX в путь DOS.

У меня есть

C:/My Document/Photo.gif

Требуется

C:\My Document\Photo.gif

Ответы [ 5 ]

8 голосов
/ 22 декабря 2010
#!/usr/bin/perl

use strict; use warnings;
use File::Spec::Win32;

print File::Spec::Win32->canonpath('C:/My Document/Photo.gif'), "\n";
4 голосов
/ 22 декабря 2010

Это регулярное выражение

s/\//\\/g
2 голосов
/ 22 декабря 2010

Прежде всего, вам обычно не нужно делать это отображение, если вы не собираетесь вызывать что-либо через cmd.exe;Windows API совершенно доволен косой чертой вместо обратной косой черты в именах файлов (но cmd.exe настаивает на том, что косая черта запускает опцию).

Тогда прямой ответ на ваш вопрос, возможно, будет:

my $file = "C:/My Documents/Photo.gif";
$file =~ s{/}{\\}g;
print "$file\n";
1 голос
/ 22 декабря 2010

Просто замените / на \. Хотя я должен указать, что вы можете использовать косую черту в Windows.

0 голосов
/ 22 декабря 2010

Немного излишне, но вы можете использовать tr вместо регулярного выражения:

tr!\\!/!;
...