Jawaban:
Ini cukup mudah menggunakan kelas File .
if(File.Exists(@"C:\test.txt"))
{
File.Delete(@"C:\test.txt");
}
File.Exists
pemeriksaan karena File.Delete
tidak ada pengecualian jika file tersebut tidak ada, meskipun jika Anda menggunakan jalur absolut, Anda akan memerlukan pemeriksaan untuk memastikan seluruh jalur file valid.
@
sebelum path file? Bagi saya itu bekerja tanpa.
Gunakan System.IO.File.Delete seperti itu:
System.IO.File.Delete(@"C:\test.txt")
Dari dokumentasi:
Jika file yang akan dihapus tidak ada, tidak ada pengecualian yang dilemparkan.
An exception is thrown if the specified file does not exist
.
System.IO.File.Delete(@"C:\test.txt");
sudah cukup. Terima kasih
Anda dapat mengimpor System.IO
namespace menggunakan:
using System.IO;
Jika filepath mewakili path lengkap ke file, Anda dapat memeriksa keberadaannya dan menghapusnya sebagai berikut:
if(File.Exists(filepath))
{
try
{
File.Delete(filepath);
}
catch(Exception ex)
{
//Do something
}
}
Jika Anda ingin menghindari, DirectoryNotFoundException
Anda harus memastikan bahwa direktori file tersebut memang ada. File.Exists
menyelesaikan ini. Cara lain adalah dengan memanfaatkan Path
dan Directory
kelas utilitas seperti:
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;
}
}
Jika Anda membaca dari file itu menggunakan FileStream dan kemudian ingin menghapusnya, pastikan Anda menutup FileStream sebelum Anda memanggil File.Delete (path). Saya punya masalah ini.
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
pernyataan, di mana File.Delete()
akan keluar kurung. Dalam contoh yang Anda miliki, Anda juga harus melakukan a filestream.Dispose();
.
Terkadang Anda ingin menghapus file apa pun masalahnya (apa pun pengecualian terjadi, harap hapus file itu). Untuk situasi seperti itu.
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);
}
}
Catatan: Pengecualian tidak dilakukan jika file yang ditentukan tidak ada.
Ini akan menjadi cara paling sederhana,
if (System.IO.File.Exists(filePath))
{
System.IO.File.Delete(filePath);
System.Threading.Thread.Sleep(20);
}
Thread.sleep
akan membantu untuk bekerja dengan sempurna, jika tidak, itu akan mempengaruhi langkah selanjutnya jika kita melakukan menyalin atau menulis file.
Cara lain yang saya lakukan adalah,
if (System.IO.File.Exists(filePath))
{
System.GC.Collect();
System.GC.WaitForPendingFinalizers();
System.IO.File.Delete(filePath);
}