Учитывая полный путь к файлу, как мне получить только путь без имени файла? - PullRequest
2 голосов
/ 06 апреля 2010

Предположим, у меня есть путь в строке с именем '/home/user/directory/HelloWorld.txt'. Я хотел бы удалить HelloWorld.txt и в конечном итоге получить «/ home / user / directory». Какое бы регулярное выражение мне понадобилось.

Ответы [ 2 ]

17 голосов
/ 06 апреля 2010

Не используйте регулярные выражения. Вместо этого используйте File::Basename, который может обрабатывать все особые случаи.

use File::Basename;

dirname("/foo/bar/baz/quux.txt"); --> "/foo/bar/baz"
0 голосов
/ 06 апреля 2010

разделить на "/", удалить последний элемент и соединить их обратно.

$path='/home/user/directory/HelloWorld.txt';
@s = split /\// ,$path;
pop(@s);
print join("/",@s);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...