जवाबों:
यह फ़ाइल वर्ग का उपयोग करके बहुत सीधा है ।
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;
यदि फ़ाइलपथ फ़ाइल के पूर्ण पथ का प्रतिनिधित्व करता है, तो आप इसके अस्तित्व की जांच कर सकते हैं और इसे निम्नानुसार हटा सकते हैं:
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 का उपयोग करके उस फ़ाइल से पढ़ रहे हैं और फिर उसे हटाना चाहते हैं, तो FileDelete (पथ) को कॉल करने से पहले सुनिश्चित करें कि आप FileStream को बंद कर दें। मेरे पास यह मुद्दा था।
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);
}