Respuestas:
Esto es bastante sencillo con la clase File .
if(File.Exists(@"C:\test.txt"))
{
File.Delete(@"C:\test.txt");
}
File.Existsverificación, ya File.Deleteque no arroja una excepción si el archivo no existe, aunque si está utilizando rutas absolutas, necesitará la verificación para asegurarse de que toda la ruta del archivo es válida.
@antes de la ruta del archivo? Para mí funciona sin.
Utilice System.IO.File.Delete así:
System.IO.File.Delete(@"C:\test.txt")
De la documentación:
Si el archivo que se va a eliminar no existe, no se produce ninguna excepción.
An exception is thrown if the specified file does not exist.
System.IO.File.Delete(@"C:\test.txt");es suficiente. Gracias
Puede importar el System.IOespacio de nombres usando:
using System.IO;
Si la ruta del archivo representa la ruta completa al archivo, puede verificar su existencia y eliminarla de la siguiente manera:
if(File.Exists(filepath))
{
try
{
File.Delete(filepath);
}
catch(Exception ex)
{
//Do something
}
}
Si desea evitarlo DirectoryNotFoundException, deberá asegurarse de que el directorio del archivo exista. File.Existslogra esto. Otra forma sería utilizar las clases de utilidad Pathy Directoryasí:
string file = @"C:\subfolder\test.txt";
if (Directory.Exists(Path.GetDirectoryName(file)))
{
File.Delete(file);
}
if (System.IO.File.Exists(@"C:\Users\Public\DeleteTest\test.txt"))
{
// Use a try block to catch IOExceptions, to
// handle the case of the file already being
// opened by another process.
try
{
System.IO.File.Delete(@"C:\Users\Public\DeleteTest\test.txt");
}
catch (System.IO.IOException e)
{
Console.WriteLine(e.Message);
return;
}
}
Si está leyendo ese archivo usando FileStream y luego desea eliminarlo, asegúrese de cerrar FileStream antes de llamar a File.Delete (ruta). Tuve este problema
var filestream = new System.IO.FileStream(@"C:\Test\PutInv.txt", System.IO.FileMode.Open, System.IO.FileAccess.Read, System.IO.FileShare.ReadWrite);
filestream.Close();
File.Delete(@"C:\Test\PutInv.txt");
usingdeclaración, donde File.Delete()iría fuera de los corchetes. En el ejemplo que tiene, también debe hacer a filestream.Dispose();.
A veces desea eliminar un archivo en cualquier caso (cualquiera que sea la excepción, elimine el archivo). Para tales situaciones.
public static void DeleteFile(string path)
{
if (!File.Exists(path))
{
return;
}
bool isDeleted = false;
while (!isDeleted)
{
try
{
File.Delete(path);
isDeleted = true;
}
catch (Exception e)
{
}
Thread.Sleep(50);
}
}
Nota: No se genera una excepción si el archivo especificado no existe.
Esta será la forma más simple,
if (System.IO.File.Exists(filePath))
{
System.IO.File.Delete(filePath);
System.Threading.Thread.Sleep(20);
}
Thread.sleep ayudará a funcionar perfectamente, de lo contrario, afectará el siguiente paso si copiamos o escribimos el archivo.
Otra forma en que lo hice es,
if (System.IO.File.Exists(filePath))
{
System.GC.Collect();
System.GC.WaitForPendingFinalizers();
System.IO.File.Delete(filePath);
}