Existe uma maneira de obter o progresso de uma transferência de arquivo usando a função de movimento em um script Perl?

StackOverflow https://stackoverflow.com/questions/879233

Pergunta

Eu sou um desenvolvedor de ETL e eu lidar com uma grande quantidade de dados que precisam ser processados ??de uma forma para a outra antes que possa ser carregado em tabelas. Portanto, a maioria dos scripts que eu trabalho com, em algum momento, tem que mover um arquivo de um lugar para o outro. Somos uma loja de janelas. Eu queria saber se havia uma maneira de ver quanto tempo um movimento toma quando estou usando a função de movimento em Perl. Se eu preciso chamar um comando janelas através do sistema que vai me dar essa opção, então estou ok para usar isso também. Existe alguma coisa em Perl ou janelas comando linha que vai me dizer o progresso da transferência de arquivo?

Obrigado!

Foi útil?

Solução

Você pode usar o Win32 :: FileOp pacote do CPAN.

Aqui está um trecho relevante:

CopyConfirm

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

copia os arquivos especificados. No caso de uma colisão, uma mostra diálogo de confirmação. progresso Shows diálogos.

Retorna verdadeiro caso de sucesso.

MoveConfirm

Move os arquivos especificados. Parâmetros como CopyConfirm

Uma alternativa linha de comando seria Term: : ProgressBar , que também é muito mais flexível, mas um pouco mais difícil de configurar. Você teria que fazer algo como: obter o tamanho do arquivo original, em seguida, iniciar a cópia e tosquia tamanho do novo arquivo (a partir de um processo filho) para dar atualizações para a barra de progresso.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top