PDA

Ver la Versión Completa : Findfirst funciona cuando quiere


rfernandez
14-03-2005, 19:09:52
Tengo un caso muy curioso.
Utilizo en findfirst con el atributo de directorio para buscar los directorios de un directorio, pues bien, en algunos ordenadores funciona y en otros no.
El mismo mismo programa por ejemplo en windows xp home funciona pero otro con windows xp pro no funciona.
Alguien sabe que puede estar pasando.
Si es un problema del xp pro, que alternativa tengo al findfirst.

gracias.

delphi.com.ar
16-03-2005, 16:20:57
Es muy extraño lo que dices...¿Qué es "no funciona"? ¿no retorna nada?... ¿No tendrás problemas con los nombres largos de rutas y archivos?

Porque no nos muestras un ejemplo con algo de código.

rfernandez
16-03-2005, 23:19:36
El ejemplo concreto es el siguiente:

Filtre := Cami+'*.*';
if FindFirst(Filtre,faDirectory,Dir) = 0 then begin
repeat
if (Dir.Name<>'.') and (Dir.Name<>'..') and (Dir.Attr=faDirectory) then
begin
// Creem el directori
Nod := Ar.Items.AddChild(Pare,UpperCase(Dir.Name));
Nod.ImageIndex := 0;
Nod.SelectedIndex := 0;
// recursivamen ens cridem per carregar .ia i subdirectoris
Carregar(Cami+Dir.Name+'\',Nod);
end;
until FindNext(Dir) <> 0;
end;
FindClose(Dir);


Donde filtro tendra un valor como por ejemplo 'c:\sql\*.*' i pongo el atributo faDirectory porque lo que busco son solo los subdirectorios.
Vuelvo a insistir que este codigo funciona perfectamente en windows xp home pero en una maquina con windows xp pro no funciona.
Se que es curioso pero es el mismo programa funcionando en dos maquinas diferentes.

Gracias.

Lepe
17-03-2005, 11:35:43
Deberías postear toda la función, ya que es recursiva y se necesita saber todos los parámetros.

Saludos