क्या ऑपरेशन के बाद फ़ाइल को बंद कर दिया गया है? :क्या फ़ाइल। AppendAllText ऑपरेशन के बाद फ़ाइल को बंद करें
System.IO.File.AppendAllText(path, text);
एक हां, कोई पर्याप्त नहीं होगा?
क्या ऑपरेशन के बाद फ़ाइल को बंद कर दिया गया है? :क्या फ़ाइल। AppendAllText ऑपरेशन के बाद फ़ाइल को बंद करें
System.IO.File.AppendAllText(path, text);
एक हां, कोई पर्याप्त नहीं होगा?
हां, यह करता है।
यदि ऐसा नहीं होता है, तो बाद में इसे बंद करने का कोई तरीका नहीं होगा क्योंकि यह निपटाने के लिए कुछ भी वापस नहीं करता है।
the docs से:
एक स्ट्रिंग और एक फ़ाइल पथ को देखते हुए इसे विधि निर्दिष्ट फ़ाइल को खोलता है, फ़ाइल के अंत में स्ट्रिंग जोड़ देती है, और फिर फ़ाइल को बंद कर देता है।
अन्य उपयोगिता विधियों (ReadAllText
, WriteAllBytes
आदि) वैसे ही काम करते हैं। , हाँ
public static void AppendAllText(string path, string contents, Encoding encoding)
{
using (StreamWriter writer = new StreamWriter(path, true, encoding))
{
writer.Write(contents);
}
}
इसलिए:
इस विधि का कोड है।
मुझे नहीं लगता कि कार्यान्वयन विवरणों पर भरोसा करना एक अच्छा विचार है जबतक कि आपको बिल्कुल नहीं करना है। कार्यान्वयन बदल सकते हैं। सौभाग्य से इस मामले में यह स्पष्ट रूप से दस्तावेज है। –
धन्यवाद मैं स्ट्रीमवाइटर का उपयोग करने के इच्छुक था, लेकिन यह इतना आसान लगता है। –
ऐसा लगता है कि सभी आईओ विधियां जिनमें 'सभी' अंतर्निहित धाराओं का निपटान/बंद होते हैं, fe: 'File.AppendAllLines', 'File.AppendAllText',' File.ReadAllBytes', 'File.ReadAllLines', 'File.ReadAllText',' File.WriteAllLines', 'File.WriteAllText'। यह कोई गारंटी नहीं है लेकिन एक अच्छा निमोनिक है। –
@TimSchmelter: मैं जाऊंगा "क्या यह एक स्ट्रीम/पाठक/लेखक लौटाता है?" यदि नहीं, तो यह सब कुछ बंद करना चाहिए (क्योंकि ऐसा कुछ और नहीं कर सकता है)। यदि ऐसा होता है, तो यह आपको कुछ ऐसा नहीं लौटाएगा जो पहले ही बंद हो चुका है। –