Ver Mensaje Individual
  #6  
Antiguo 19-06-2007
Mick Mick is offline
Miembro
 
Registrado: may 2003
Posts: 405
Reputación: 22
Mick Va por buen camino
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.
Responder Con Cita