छेड़छाड़ के साथ लिखते हैं। मुझे लगता है कि मेरा शीर्षक स्पष्ट नहीं है।सी # - फ़ाइलस्ट्रीम: दोनों एक फ़ाइल को लॉक करते हैं और साथ ही इसे बिना छेड़छाड़ किए इसे पढ़ने में सक्षम होते हैं और इसे
मैं लिख सकते हैं और का उपयोग कर एक फाइल पढ़ सकते हैं एक FileStream
FileStream fs = new FileStream("C:\\Users\\Public\\text.txt", FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.None);
private void button1_Click(object sender, EventArgs e)
{
fs.Seek(0,0);
StreamReader sr = new StreamReader(fs);
textbox.Text = sr.ReadToEnd();
}
private void button2_Click(object sender, EventArgs e)
{
StreamWriter sw = new StreamWriter(fs);
sw.Write(textbox.Text);
sw.Flush();
}
इस तरह अन्य कार्यक्रमों फ़ाइल का उपयोग नहीं कर सकते, लेकिन मैं यह भी नहीं हटा सकते हैं:
मैं समझाने की कोशिश करता हूँ सामग्री। इसे लिखना केवल स्ट्रिंग जोड़ता है, यह सामग्री को प्रतिस्थापित नहीं करता है।
या मैं एक FileStream बिना यह कर सकते हैं:
private void button1_Click(object sender, EventArgs e)
{
StreamReader sr = new StreamReader("C:\\Users\\Public\\text.txt");
textBox1.Text = sr.ReadToEnd();
sr.Close();
}
private void button2_Click(object sender, EventArgs e)
{
StreamWriter sw = new StreamWriter("C:\\Users\\Public\\text.txt", false);
sw.Write(textBox1.Text);
sw.Close();
}
इस तरह, फ़ाइल की सामग्री बदल दिया जाता है, लेकिन यह फ़ाइलों पर कोई ताला नहीं है।
लेकिन मुझे दोनों चाहिए। उपाय क्या है?
FileStream.SetLength साथ काटना() –