मुझे हर बार एप्लिकेशन शुरू होने पर किसी विशेष फ़ाइल की सामग्री को साफ़ करने की आवश्यकता होती है। मैं यह कैसे करुं?
जवाबों:
आप File.WriteAllText विधि का उपयोग कर सकते हैं ।
System.IO.File.WriteAllText(@"Path/foo.bar",string.Empty);
IO exceptions of file is in use, इसलिए मैं आपको फ़ाइल स्ट्रीम के माध्यम से इसे मैन्युअल रूप से संभालने की सलाह देता हूं
यह वही है जो मैंने एक नई फ़ाइल बनाए बिना फ़ाइल की सामग्री को साफ़ करने के लिए किया था क्योंकि मैं नहीं चाहता था कि फ़ाइल सृजन के नए समय को प्रदर्शित करे, जब अनुप्रयोग ने केवल अपनी सामग्री को अपडेट किया हो।
FileStream fileStream = File.Open(<path>, FileMode.Open);
/*
* Set the length of filestream to 0 and flush it to the physical file.
*
* Flushing the stream is important because this ensures that
* the changes to the stream trickle down to the physical file.
*
*/
fileStream.SetLength(0);
fileStream.Close(); // This flushes the content, too.
ऐसा करने का सबसे सरल तरीका शायद आपके एप्लिकेशन के माध्यम से फ़ाइल को हटाना और एक ही नाम के साथ एक नया बनाना है ... यहां तक कि सरल तरीके से बस अपने आवेदन को एक नई फ़ाइल के साथ अधिलेखित कर दें।
सबसे आसान तरीका है:
File.WriteAllText(path, string.Empty)
हालांकि, मैं आपको उपयोग करने की सलाह देता हूं FileStreamक्योंकि पहला समाधान फेंक सकता हैUnauthorizedAccessException
using(FileStream fs = File.Open(path,FileMode.OpenOrCreate, FileAccess.ReadWrite))
{
lock(fs)
{
fs.SetLength(0);
}
}
File.WriteAllText, ऐसा लगता है जैसे कि यह कभी-कभी (?) फ़ाइल को हटा देता है क्योंकि हार्डलिंक को अपडेट नहीं रखा गया है।