Відповіді:
Це досить просто за допомогою класу File .
if(File.Exists(@"C:\test.txt"))
{
File.Delete(@"C:\test.txt");
}
File.Exists
перевірку, оскільки File.Delete
не викидає виключення, якщо файл не існує, хоча якщо ви використовуєте абсолютні шляхи, вам знадобиться перевірка, щоб переконатися, що весь шлях файлу дійсний.
@
шлях до файлу? Для мене це працює без.
Використовуйте System.IO.File.Delete так:
System.IO.File.Delete(@"C:\test.txt")
З документації:
Якщо файл, який потрібно видалити, не існує, виняток не викидається.
An exception is thrown if the specified file does not exist
.
System.IO.File.Delete(@"C:\test.txt");
достатньо. Спасибі
Ви можете імпортувати System.IO
простір імен за допомогою:
using System.IO;
Якщо filepath являє собою повний шлях до файлу, ви можете перевірити його існування та видалити так:
if(File.Exists(filepath))
{
try
{
File.Delete(filepath);
}
catch(Exception ex)
{
//Do something
}
}
Якщо ви хочете уникнути, DirectoryNotFoundException
вам потрібно буде переконатися, що каталог файлу дійсно існує. File.Exists
виконує це. Іншим способом було б використання класів Path
та Directory
класів корисних програм, таких як:
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;
}
}
Якщо ви читаєте з цього файлу за допомогою FileStream, а потім хочете видалити його, переконайтесь, що ви закрили FileStream, перш ніж викликати файл File.Delete (шлях). У мене було це питання.
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");
using
заявою, де File.Delete()
виходили б за дужки. У прикладі, який ви маєте, ви також повинні зробити filestream.Dispose();
.
Іноді ви хочете видалити файл у будь-якому випадку (будь-який виняток, будь ласка, видаліть файл). Для таких ситуацій.
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);
}
}
Примітка: Виняток не викидається, якщо вказаний файл не існує.
Це буде найпростіший спосіб,
if (System.IO.File.Exists(filePath))
{
System.IO.File.Delete(filePath);
System.Threading.Thread.Sleep(20);
}
Thread.sleep
допоможе прекрасно працювати, інакше це вплине на наступний крок, якщо ми робимо копіювання або запис файлу.
Ще один спосіб я це:
if (System.IO.File.Exists(filePath))
{
System.GC.Collect();
System.GC.WaitForPendingFinalizers();
System.IO.File.Delete(filePath);
}