है, मैंने कुछ उत्सुकता में भाग लिया है। मेरे पास एक डिकंपेलर है जो बाइनरी फ़ाइल से जानकारी निकालता है। मैं ऑब्जेक्ट्स की एक श्रृंखला निकालने जा रहा हूं जिसे मुझे अलग-अलग डिस्क पर बाइनरी फाइलों के रूप में लिखने की आवश्यकता है। ये ऑब्जेक्ट्स लाइब्रेरी में संकलित ग्राफिक मॉडल हैं। ऑब्जेक्ट्स में उनमें नाम एम्बेड किए गए हैं और मुझे उस नाम को फ़ाइल नाम के रूप में उपयोग करने की आवश्यकता है।एक फ़ाइल लिखना जिसमें डिवाइस का नाम
मैं उपयोग कर रहा हूँ:
try {
// Open file for reading .
using (var fileStream = new FileStream(fileName, FileMode.Create, FileAccess.Write)) {
// Writes a block of bytes to this stream using data from a byte array. .
fileStream.Write(byteArray, 0, byteArray.Length);
// close file stream .
fileStream.Close();
}
return true;
}
catch (Exception exception) {
return false;
}
मुझे पता है मेरी अपवाद हैंडलिंग महान नहीं है! हालांकि समस्या तब दिखाई गई जब वस्तुओं में से एक को COM2 नाम दिया गया था, इसका नाम अपवाद था:
फ़ाइलस्ट्रीम डिस्क विभाजन और टेप ड्राइव जैसे Win32 डिवाइस नहीं खोलेंगे।
तो मेरे उदाहरण में मैं COM2.mdl नामक फ़ाइल लिखने की कोशिश कर रहा हूं और यह त्रुटि प्राप्त करता हूं। मैं वास्तव में इन नामों को बदलना नहीं चाहता क्योंकि वे डेवलपर द्वारा एम्बेडेड हैं।
मैंने उन उपकरणों की सूची के खिलाफ नामों का परीक्षण करने पर विचार किया जो त्रुटि का कारण बन सकते हैं - लेकिन मुझे नहीं पता कि यह सूची क्या हो सकती है और इसका मतलब यह भी होगा कि फ़ाइल का नाम बदलना जो मैं नहीं चाहता कर।
तो मेरा प्रश्न: क्या फ़ाइल समस्या के अलावा बाइटरी फ़ाइल के रूप में बाइट सरणी लिखने का कोई तरीका है जो इस समस्या से अधिक हो सकता है?
बहुत धन्यवाद
मैंने फ़ाइलस्ट्रीम के लिए फ़ाइल नाम की शुरुआत में \\? \ जोड़ने की कोशिश की और यह पथ नाम अपवाद में एक अवैध चरित्र लौटा, इसलिए मुझे लगता है कि यूएनसी पथ और फ़ाइलस्ट्रीम – ScruffyDuck
मिश्रण नहीं है आरक्षित शब्दों की सूची के लिए धन्यवाद। अंत में मैंने इस सूची के खिलाफ परीक्षण करने का फैसला किया और यदि नाम प्रत्यय जोड़कर नाम बदलने के लिए है। यह अब तक मेरे उद्देश्य के लिए काफी अच्छा काम करता है। – ScruffyDuck
+1 ग्रेट जानकारी। मैं समझ नहीं पाया कि मैं con.txt नामक फ़ाइल क्यों नहीं बना सका। –