Posibilidad que se me ocurre,
Si se estan creando continuamente directorios o archivos, parece normal que pueda pasar eso , por una simple problema de concurrencia, que se da siempre que varios procesos acceden a los mismos datos, sin realizacion de bloqueos.
Cuando se añade un subdirectorio o archivo nuevo al disco, la lista de archivos de ese directorio se modifica, ya que se tiene que insertar o añadir el nuevo archivo en la lista.
De modo que cuando el programa en delphi esta recorriendo la lista, en el medio de este proceso, esta es modificada, creciendo o disminuyendo o cambiando la lista de archivos de orden y de posicion.
En ese caso lo que habria que hacer es configurar el stringlist para que no admita duplicados:
Lista.Duplicates:= dupIgnore;
De este modo se evita que en el stringlist se añada dos veces el mismo archivo.
Aunque la forma buena de hacer lo que pretendes seria, usar las funciones del api que avisan cuadno hay modificaciones en una carpeta:
FindFirstChangeNotification
FindNextChangeNotification
ReadDirectoryChangesW
WaitForSingleObject
etc..
Saludos
Última edición por Mick fecha: 19-06-2007 a las 12:44:23.
|