Una aplicación necesita crear un archivo en un directorio, hacer algo en el directorio y luego eliminar el archivo. Por ejemplo, el código fuente a continuación:Crear y eliminar las causas de archivo IOException
File.Create("textfile.txt");
// Do something here
File.Delete("textfile.txt");
Si "algo" es un proceso que sólo necesita un lapso muy corto de tiempo, File.Delete tirará IOException (archivo está siendo utilizado por otro proceso). De acuerdo con otra publicación de SO: Cannot delete directory with Directory.Delete(path, true), llamar a Thread.Sleep (0) debería permitir que termine el proceso anterior. Sin embargo, incluso con
File.Create("textfile.txt");
// Do something here
Thread.Sleep(0);
File.Delete("textfile.txt");
, se sigue lanzando la misma excepción IOException.
La solución que obtuve es un ciclo while que intenta eliminar el archivo repetidamente hasta que se elimina. Pero me pregunto si hay una mejor solución.
Gracias por las respuestas rápidas (y señalando que está en MSDN. En este momento no me siento muy brillante). Voy a ir con @usr porque él es el primero. Pero acepte el +1 como mi agradecimiento. – Jim