![]() |
Модераторы: korob2001, ginnie |
![]() ![]() ![]() |
|
Legafor |
|
|||
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 20.7.2004 Репутация: нет Всего: нет |
Суть проблемы:
есть путь к директории, необходимо получить имена всех файлов в ней хранящихся. (что-то типа команды dir в ДОСе, только она еще и имена директорий выводит, это не нужно) Подскажите пожалуйста, как реализовать на Perl. Спасибо заранее. |
|||
|
||||
Secandr |
|
|||
![]() Связист ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4043 Регистрация: 3.8.2003 Где: Russia, Volgograd Репутация: 1 Всего: 39 |
opendir
readdir closedir |
|||
|
||||
GoodBoy |
|
|||
![]() Главный джедай ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 3886 Регистрация: 8.1.2003 Где: КМВ Репутация: 2 Всего: 83 |
|
|||
|
||||
Secandr |
|
|||
![]() Связист ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4043 Регистрация: 3.8.2003 Где: Russia, Volgograd Репутация: 1 Всего: 39 |
||||
|
||||
dimes |
|
||||||
Бывалый ![]() Профиль Группа: Участник Сообщений: 249 Регистрация: 20.7.2004 Где: то около СПБ Репутация: нет Всего: 14 |
Я могу ошибаться, но по-моему это не вернет файлы без расширения и скрытых файлов возможно проще зделать так:
|
||||||
|
|||||||
GoodBoy |
|
||||||||
![]() Главный джедай ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 3886 Регистрация: 8.1.2003 Где: КМВ Репутация: 2 Всего: 83 |
можно попробовать так:
Это сообщение отредактировал(а) GoodBoy - 20.7.2004, 10:59 |
||||||||
|
|||||||||
Legafor |
|
||||
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 20.7.2004 Репутация: нет Всего: нет |
Спасибо большое, проблема решена...........
![]()
Еще раз спасибо! Это сообщение отредактировал(а) Legafor - 20.7.2004, 11:31 |
||||
|
|||||
korob2001 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: 31 Всего: 61 |
Э-эээ подожди. Дело в том, что вариант с glob менее эфективен чем opendir(), readdir() и closedir(). Если в каталоге будет слишком много файлов, то glob не вернёт все файлы, так как она имеет ограничение на кол-во файлов, в отличии от readdir(). Это сообщение отредактировал(а) korob2001 - 20.7.2004, 17:03 -------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
|||
|
||||
Secandr |
|
|||
![]() Связист ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4043 Регистрация: 3.8.2003 Где: Russia, Volgograd Репутация: 1 Всего: 39 |
Я привёл ссылку на скрипт, в котором идёт поиск всех файлов в данном и во вложеных каталогах. А упростить его дело не трудно
![]() |
|||
|
||||
y0sh1 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 20 Регистрация: 26.8.2004 Репутация: нет Всего: нет |
Как подсчитать в директории объём всех файлов скажем с расширением *.doc!? Те по маске...
Заранее спасибо! |
|||
|
||||
korob2001 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: 31 Всего: 61 |
Помоему это уже другая тема. Если есть желание что бы кто-нибудь ответил, создайте новую тему. -------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
|||
|
||||
GoodBoy |
|
|||
![]() Главный джедай ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 3886 Регистрация: 8.1.2003 Где: КМВ Репутация: 2 Всего: 83 |
|
|||
|
||||
y0sh1 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 20 Регистрация: 26.8.2004 Репутация: нет Всего: нет |
GoodBoy
спасибо... постараюсь прикрутить к основному скрипту... |
|||
|
||||
y0sh1 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 20 Регистрация: 26.8.2004 Репутация: нет Всего: нет |
При рекурсивном просмотре директории это делается как-то медлено...
Может есть конструкция работующая быстрее!? Или они в целом более менее равны по быстродействию!? |
|||
|
||||
ElectricalStorm |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 547 Регистрация: 22.1.2004 Репутация: нет Всего: 9 |
я не думаю что это быстрее ... но зато короче ;)
-------------------- Нужно знать инструмент, которым пользуешься |
|||
|
||||
y0sh1 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 20 Регистрация: 26.8.2004 Репутация: нет Всего: нет |
понял, спасибо... попытаюсь разобраться...
|
|||
|
||||
olexdj |
|
|||
Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 7.3.2011 Репутация: нет Всего: нет |
Подскажите плиз, есть директория с картинками вида:
124134.jpg 123356.jpg 12413545.jpg 15346356.jpg 124123556.jpg Короче "наборцифр.jpg" Цифры не попорядку, могут быть дырки. Мне надо узнать самую большую цифру, чтобы писать в директорию новую картинку с большей цифрой на единицу. Подскажите плиз, как наиболее эффективно это сделать. Спасибо заранее!!!!! Добавлено через 6 минут и 29 секунд Пока сваял такого монстра:
Но это ж ужас скоко работы для одной циферки (((( Да, картинок сейчас около 25000 в директории, будет еще больше... |
|||
|
||||
arto |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1495 Регистрация: 31.10.2004 Репутация: 38 Всего: 40 |
# for i in {1..25000}; do touch $RANDOM.jpg; done
# time perl -le 'open F,"ls -1v *.jpg|";@a=<F>;chomp@a;print ($a[-1])' 32766.jpg Real: 0.08s User: 0.00s System: 0.00s Percent: 4%% Cmd: perl -le 'open F,"ls -1v *.jpg|";@a=<F>;chomp@a;print ($a[-1])' # time perl -le 'opendir D,"."; print ((sort{$b<=>$a}map{(split"\\.",$_)[0]}grep/\.jpg/,readdir D)[0].".jpg")' 32766.jpg Real: 0.03s User: 0.02s System: 0.01s Percent: 87%% Cmd: perl -le # Добавлено через 5 минут и 49 секунд ну и самое простое -- записывать имя самого последнего созданного файла. |
|||
|
||||
ginnie |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1287 Регистрация: 6.1.2008 Где: Москва Репутация: 38 Всего: 49 |
Этот вариант, кроме того, позволит (при использовании блокировки) правильно работать нескольким одновременно запущенным экземплярам программы. -------------------- Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг) |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Perl" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Perl: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |