How can I delete a file in C# e.g. C:\\test.txt
, although apply the same kind of method like in batch files e.g.
if exist \"C:\\test.txt\"
dele
if (File.Exists(path))
{
File.Delete(path);
}
If you want to avoid a DirectoryNotFoundException
you will need to ensure that the directory of the file does indeed exist. File.Exists
accomplishes this. Another way would be to utilize the Path
and Directory
utility classes like so:
string file = @"C:\subfolder\test.txt";
if (Directory.Exists(Path.GetDirectoryName(file)))
{
File.Delete(file);
}
This will be the simplest way,
if (System.IO.File.Exists(filePath))
{
System.IO.File.Delete(filePath);
System.Threading.Thread.Sleep(20);
}
Thread.sleep
will help to work perfectly, otherwise, it will affect the next step if we doing copy or write the file.
Another way I did is,
if (System.IO.File.Exists(filePath))
{
System.GC.Collect();
System.GC.WaitForPendingFinalizers();
System.IO.File.Delete(filePath);
}
Sometimes you want to delete a file whatever the case(whatever the exception occurs ,please do delete the file). For such situations.
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);
}
}
Note:An exception is not thrown if the specified file does not exist.