2009-05-18 2 views
3

Я разработчик ETL, и я занимаюсь большим количеством данных, которые нужно обрабатывать из одной формы в другую, прежде чем ее можно будет загружать в таблицы. Поэтому большинство сценариев, с которыми я работаю, в какой-то момент должны перемещать файл из одного места в другое. Мы - магазин окон. Мне было интересно, есть ли способ увидеть, сколько времени требуется, когда я использую функцию перемещения в Perl. Если мне нужно вызвать команду windows через систему, которая предоставит мне эту опцию, тогда я тоже хорошо ее использую. Есть ли что-нибудь в командной строке Perl или Windows, которая сообщит мне о ходе передачи файла?Есть ли способ получить ход передачи файла, используя функцию перемещения в Perl-скрипте?

Спасибо!

ответ

7

Вы можете использовать пакет Win32::FileOp cpan.

Вот соответствующий отрывок:

CopyConfirm

CopyConfirm ($FileName => $FileOrDirectoryName [, ...]) 
CopyConfirm (\@FileNames => $DirectoryName [, ...]) 
CopyConfirm (\@FileNames => \@FileOrDirectoryNames [, ...]) 

Копии указанных файлов. В случае столкновения отображается диалоговое окно подтверждения . Показывает прогресс Диалоги.

Возвращает true в случае успеха.

MoveConfirm

Перемещение указанных файлов. Параметры как CopyConfirm

линия альтернативная команда будет Term::ProgressBar, который также является гораздо более гибким, но несколько сложнее настроить. Вам нужно будет сделать что-то вроде: получить размер оригинального файла, затем запустить копию и опросить размер нового файла (из дочернего процесса), чтобы обновить индикатор выполнения.

+0

Спасибо. Это определенно то, что я искал. Теперь мне нужно некоторое свободное время, чтобы реализовать это на всех сценариях, которые у меня есть. – tundal45