2012-11-22 6 views
5

साथ अनुप्रेषित संभव डुप्लिकेट:
How can I determine whether Console.Out has been redirected to a file?
How to detect if Console.In (stdin) has been redirected?कंसोल Console.CursorLeft

हमारा सिस्टम अभी पिछले बात यह है कि कंसोल पर मुद्रित किया गया था से अधिक लिखने के लिए एक CursorLeft समारोह उपयोग कर रहा है खिड़की:

Console.CursorLeft = 0; 

यह कार्यक्षमता है जो आवश्यक है, इसलिए मैं इसे हर बार एक नई लाइन मुद्रित करने के लिए नहीं बदल सकता।

कंसोल को किसी टेक्स्ट फ़ाइल पर रीडायरेक्ट करते समय, IOException होता है। मैं इन आउटपुट को प्रदर्शित करने के लिए लॉग फ़ाइल कैसे प्राप्त कर सकता हूं या इसे हर किसी को लिखने के लिए मजबूर कर सकता हूं?

उत्तर

0

यह मेरे लिए बिल्कुल स्पष्ट है कि कंसोल एक फ़ाइल से अलग है। उदाहरण के लिए आप कंसोल में रंगों का उपयोग कर सकते हैं जो आउटपुट को किसी फ़ाइल में रीडायरेक्ट करते समय खो जाएंगे। इस प्रकार यह गारंटी नहीं है कि पुनर्निर्देशन के बाद सभी कंसोल कार्यक्षमता संरक्षित की जा सकती है। मैं उस आवश्यकता पर सवाल पूछने का सुझाव दूंगा क्योंकि यह व्यवहार्य प्रतीत नहीं होता है। "The handle is invalid" when running .net console via java

यहाँ जो कैसे सांत्वना कार्यों के बारे में कुछ जानकारी (पृष्ठ के निचले भाग में) है MSDN से लेख है:: http://msdn.microsoft.com/en-us/library/system.console.aspx

फिर भी यहाँ

एक ऐसी ही समस्या एक ही Win32API नीचे के आधार पर है

इस बारे में सोचने की एक और बात यह है कि यद्यपि आप इस समस्या को ठीक करने में सक्षम नहीं हो सकते हैं, इसलिए आप निश्चित रूप से अपने आवेदन को फिर से आर्किटेक्ट कर सकते हैं, ताकि आप कंसोल के साथ कुछ बफर क्लास के साथ सीधे बातचीत कर सकें जो आपके द्वारा किए जाने वाले सभी परिवर्तनों को जमा करता है वर्चुअल बफर में एक पंक्ति (या कई पंक्तियां) तक और फिर केवल कंसोल पर एक ही कॉल करें। जब आप यह सुनिश्चित करने के लिए कि सभी परिवर्तन किए गए हैं और यह लाइन अब और नहीं बदली जा रही है।