[Cascavel-pm] Nomes longos no windows

Alceu Rodrigues de Freitas Jr. glasswalk3r em yahoo.com.br
Domingo Abril 10 15:51:22 PDT 2005


Er Galvão Abbott - PM Porto Alegre wrote:

> Acontece que o WinRAR reclama que não pode usar o arquivo Zip porque 
> ele já está sendo usado por outro processo. Eu entendo que cada 
> chamada system faz um fork que cria um processo, certo?
>
Certo. Faz mesmo.

> Ou seja, antes de cada operação (tanto de inserção de diretório como 
> de inserção de arquivo) eu teria que verificar se o processo anterior 
> já terminou o trabalho, correto?
>
Seria bom, mas isso pode se mostrar bastante trabalhoso.

> Alguém poderia me dar umas dicas? Eu sei que tenho que usar signals, 
> mas como nunca usei antes queria umas dicas de vocês. Notem como é 
> feito o processo todo:
>
Usar signals? Esqueça... vc vai ficar louco tentando. Não funciona 
direito no Windows (nem no Cygwin, eu fiquei quase louco tentando). Se 
você puder, dê preferência a usar código Perl para fazer seu trabalho.

>  1    for ($d = 0; $d < scalar(@dirs); $d++)
>  2   {
>  3        system('C:/arquivos de programas/winrar/winrar.exe', 'A', 
> '-ibck', '-afzip', '-m5', 'C:/'.$compfile, $dirs[$d]);
>  4       5        opendir(DH, $dirs[$d]) or die ('Impossivel abrir o 
> diretório '.$dirs[$d].': '.$!);
>  6        @files = grep { $_ ne '.' && $_ ne '..' } readdir DH;
>  7       8        for ($f = 0; $f < scalar (@files); $f++)
>  9        {
> 10            system('C:/arquivos de programas/winrar/winrar.exe', 
> 'A', '-ibck', '-afzip', '-m5', 'C:/'.$compfile, 
> $dirs[$d].'/'.$files[$f]);
> 11        }
> 12      13        closedir(DH);
> 14    }
>
> Se eu entendi corretamente estas checagens deveriam ser feitas antes 
> da linha 3 e antes da linha 10, correto? 

Experimente inserir um sleep de 1 ou 2 segundos antes de tentar fazer a 
inserção... talvez isso já resolva seu trabalho (considerando que esse 
tempo de espera não lhe cause problemas).

Eu concordo com o Champs, às vezes usando o Windows você tem a impressão 
que não tem controle sobre seu computador... isso me lembra o Windows XP 
executando "reboots" automáticos toda vez que algo dá errado... para 
tentar "consertar".

[]'s
Alceu



Mais detalhes sobre a lista de discussão Cascavel-pm