![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
FindFirst, FindNext, FindClose
Hola.
Quiero hacer una pequeña utilidad para mis mp3. Para ello hice una procedure, la cual a partir de la ruta entregada, me devuelve todos los archivos contenidos en esa carpeta (al menos esa es la idea). El problema es que supuestamente lo hace bien, pero cuando quiero ver cuantos mp3 contó me arroja un valor menor al real. Me explico. Le doy la ruta de mis mp3 ("E:\mp3") en la cual tengo 4.591 mp3 (valor real, lo saque por el SO y por winamp y me da ese valor), pero al correr el programa me arroja 4.467 mp3. Quisiera saber cual es el problema y si alguien puede correr el codigo para ver donde me equivoco. Aqui está el código: procedimiento recursivo: ----------------------------- procedure TForm1.BuscaArchivos(Ruta,Mask:String;Atributos:Integer); var sr :TSearchRec; FileAttrs : integer; begin FileAttrs := Atributos; if FindFirst(Ruta+Mask, FileAttrs, sr) = 0 then begin repeat if ((sr.Attr and FileAttrs) = sr.Attr) and (sr.Name <> '.') and (sr.Name <> '..') then begin if sr.Attr = faDirectory then BuscaArchivos(Ruta + '\' + sr.Name,Mask,FileAttrs) else begin ListBox1.Items.Add(Ruta + '\' + sr.Name); ListBox1.Update; end; end; until FindNext(sr) <> 0; FindClose(sr); end; end; LLAMADA AL PROCEDIMIENTO RECURSIVO: BuscaArchivos(Ruta,'\*.*',faAnyFile); en donde ruta, en mi caso, es "E:\mp3" La cantidad de archivos contados debiese estar en: ListBox1.Items.Count; nota: deduci este procedimiento de la ayuda en delphi sobre FindFirst, FindNext y FindClose. desde ya gracias
__________________
- Si tienes un problema que tiene solución ¿porque te preocupas? - Si tienes un problema que no tiene solución ¿porque te preocupas? |
|
|
![]() |
|