![]() |
Listar una carpeta
Estaba intentando copiar (o cortar) una carpeta (Raíz), la idea es que primero me meta todos los archivos y carpetas (recursivamente, es decir, los ke estan dentro de estos también hasta el infinito y más allá) y luego con la función CopyFile ir item por item de la lista copiando a la nueva ruta, el problema está en listar los archivos recursivamente, tengo este procedimiento:
Lo implemento de la siguiente forma, en el TAction de Copiar:
El problema es que el procedimiento recursivo no está bien, porque me hace un bucle que nunca termina. Cuál es el fallo? Espero haberme explicado bien, ando un poco liado... |
Hola,
Si se trata de copiar o mover una carpeta tal vez te fuera útil hacer uso de la estructura "TSHFileOpStruct" que propone el API de Win32. Esto que ahora verás es una adaptación de cierto código que Román publicó en su día para copiar o mover archivos... o puede que carpetas, no lo recuerdo ahora mismo:
El código de más arriba movería la carpeta "C:\carpeta" y todo su contenido (subdirectorios y archivos) a "D:\carpeta". De todos modos echa un vistazo a la ayuda (SDK Win32 que viene con Delphi) sobre "SHFileOpStruct" para ampliar información. |
Muy interesante esta ayuda... Os confeso que nunca me había dado cuenta de que existia, muy estúpido por mi parte, nunca lo olvidaré...
|
Hola,
Cita:
|
Una vez más, fantástica la ayuda sobre la API Win32.
Dije lo de estúpido porque no sabía de su existenecia y me ha simplificado mucho las cosas, procedimientos que me ocupaban unas 10 línias se han traducido a una sola línia con las funciones que he encontrado en esta ayuda, realmente interesante, muchas gracias Dec! |
| La franja horaria es GMT +2. Ahora son las 23:35:38. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi