[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