मैं एक प्रोग्राम बना रहा हूं जो फ़ाइल का चयन करने और हेक्स में फ़ाइल लिखने के बाद फ़ाइल पढ़ता है। समस्या BinaryReader .Close(); के बाद भी खुली है और जब मैं कोई फ़ाइल लिखने का प्रयास करता हूं तो यह मुझे System.IO.IOException: the process cannot access the file त्रुटि देता है। मुझे कुछ याद आ रहा है?

enter image description here

संवाद बॉक्स से फ़ाइल का चयन करने के बाद फ़ाइल को पढ़ने वाला कोड यहां दिया गया है ..

BinaryReader br = new BinaryReader(File.OpenRead(sfile.FileName));
string pted = null;
br.BaseStream.Position = 0x12;
pted += br.ReadByte().ToString("X2");
if (pted == "01")
{

}
else
{

}
br.Close();

और यहाँ वह कोड है जो एक बटन क्लिक करने पर फ़ाइल लिखता है

Stream st = File.Open(pathTextBox.Text, FileMode.Open);
st.Seek(0x12, SeekOrigin.Begin);
st.WriteByte(0x00);
st.Close();
c#
0
user2838319 3 अगस्त 2017, 13:34

3 जवाब

सबसे बढ़िया उत्तर

ट्राई कैच स्टेटमेंट में br.close जोड़ें और बंद करने के बाद बाइनरी रीडर का निपटान करें

उदाहरण के लिए:

try{
    br.close();
    br.dispose();
}
catch(Exception exp)
{
//Assuming you have included using 'namespace System.Diagnostics'
Debug.WriteLine(exp.ToString());
}

आप बाइनरी रीडर यहां पर अधिक पढ़ सकते हैं।

0
Muhand Jumah 3 अगस्त 2017, 13:42

पहले जांचें कि फ़ाइल यहां है या नहीं, फिर इसे using निर्देश के साथ आज़माएं।

0
orgen 3 अगस्त 2017, 13:41

जैसा कि ऑर्गेन ने उल्लेख किया है:

if(File.Exists(@pathTextBox.Text)
{
  using(Stream st = File.Open(pathTextBox.Text, FileMode.Open))
   {
    st.Seek(0x12, SeekOrigin.Begin);
    st.WriteByte(0x00);
   }
}

उपयोग() डिस्पोजेबल का ख्याल रखेगा।

0
Jodn 3 अगस्त 2017, 13:47