Eliminacion de Archivos...

16/04/2008 - 22:08 por Claudio Quezada | Informe spam
Tengo un problema con la eliminacion de archivos en un directorio
especifico.

Lo hago de la siguiente manera:

private static void EliminaProcesados() {
int i;
string[] strArrFiles;
string[] strArrDirectory;

strArrFiles=Directory.GetFiles(PathDirectorioProcesados);

strArrDirectory=Directory.GetDirectories(PathDirectorioProcesados);

if(strArrFiles.Length !=0 ||strArrDirectory.Length !=0) {
try {
if(strArrFiles.Length !=0) {
for(i = 0; i <= strArrFiles.GetUpperBound(0); i++) { FileInfo
InfoFile = new FileInfo(strArrFiles[i]);
DirectoryInfo InfoDir = new DirectoryInfo(PathDirectorioProcesados);
if (InfoDir.Name=="Procesados") {
if (InfoFile.Extension.ToLower()==".txt") {
if (File.Exists(PathDirectorio+"\\"+InfoFile.Name))
File.Delete(PathDirectorio+"\\"+InfoFile.Name);
}
}
}
}
}
catch(Exception e) {
throw new Exception("Error con el archivo "+e.Message);}
}
}

El problema que siempre me arroja es este error: "The process cannot
access the file [Ruta de mi Archivo] because it is being used by another
process"

Una de las cosas que me di cuenta es que ocurre solo con el ultimo
archivo del directorio ya que los primeros los mueve sin problemas.

Esta malo mi proceso de eliminacion o me falta algo por hacer?

Gracias.

PD:
PathDirectorioProcesados es la ruta de un directorio en done se
encuentran los archivos que ya procese
PathDirectorio es la ruta en donde se encuentran los avisos procesados y
sin procesar.
 

Leer las respuestas

#1 Claudio Quezada
16/04/2008 - 22:58 | Informe spam
Ya solucione el tema, era porque no cerraba el proceso de lectura del
archivo...

en algun lugar tenia un StreamReader y no lo cerraba.

eso era todo.

gracias de todas maneras.

Claudio Quezada escribió:
Tengo un problema con la eliminacion de archivos en un directorio
especifico.

Lo hago de la siguiente manera:

private static void EliminaProcesados() {
int i;
string[] strArrFiles;
string[] strArrDirectory;

strArrFiles=Directory.GetFiles(PathDirectorioProcesados);

strArrDirectory=Directory.GetDirectories(PathDirectorioProcesados);

if(strArrFiles.Length !=0 ||strArrDirectory.Length !=0) {
try {
if(strArrFiles.Length !=0) {
for(i = 0; i <= strArrFiles.GetUpperBound(0); i++)
{ FileInfo InfoFile = new FileInfo(strArrFiles[i]);
DirectoryInfo InfoDir = new DirectoryInfo(PathDirectorioProcesados);
if (InfoDir.Name=="Procesados") {
if (InfoFile.Extension.ToLower()==".txt") {
if (File.Exists(PathDirectorio+"\\"+InfoFile.Name))
File.Delete(PathDirectorio+"\\"+InfoFile.Name);
}
}
}
}
}
catch(Exception e) {
throw new Exception("Error con el archivo "+e.Message);}
}
}

El problema que siempre me arroja es este error: "The process cannot
access the file [Ruta de mi Archivo] because it is being used by another
process"

Una de las cosas que me di cuenta es que ocurre solo con el ultimo
archivo del directorio ya que los primeros los mueve sin problemas.

Esta malo mi proceso de eliminacion o me falta algo por hacer?

Gracias.

PD:
PathDirectorioProcesados es la ruta de un directorio en done se
encuentran los archivos que ya procese
PathDirectorio es la ruta en donde se encuentran los avisos procesados y
sin procesar.

Preguntas similares