How to delete a file after checking whether it exists

Viewed 453471

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"

delete "C:\test.txt"

else 

return nothing (ignore)
11 Answers
if (File.Exists(Path.Combine(rootFolder, authorsFile)))    
{    
// If file found, delete it    
File.Delete(Path.Combine(rootFolder, authorsFile));    
Console.WriteLine("File deleted.");    
} 

Dynamic

 string FilePath = Server.MapPath(@"~/folder/news/" + IdSelect)
 if (System.IO.File.Exists(FilePath + "/" + name+ ".jpg"))
   {
    System.IO.File.Delete(FilePath + "/" + name+ ".jpg");
   }

Delete all files in a directory

string[] files = Directory.GetFiles(rootFolder);    
foreach (string file in files)    
{    
File.Delete(file);    
Console.WriteLine($"{file} is deleted.");    
}

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);
}
Related