के रूप में चलते समय मैप किए गए नेटवर्क ड्राइव के अस्तित्व से इंकार कर देता है। मैं विंडोज 7 पर एक छोटा .NET प्रोग्राम लिख रहा हूं। एक चीज जो मुझे करने की ज़रूरत है वह प्रतीकात्मक लिंक बनाना है, जो मुझे लगता है कि मुझे प्रबंधक के फ़ायदे। इसे मैप किए गए नेटवर्क ड्राइव के साथ काम करने में भी सक्षम होना चाहिए (उदाहरण के लिए, आर: \, जो मेरे सिस्टम मैप्स पर \\titanium\Private\
)।.NET Directory.Exists व्यवस्थापक
मैं यह सत्यापित करने के लिए Directory.Exists(path)
का उपयोग कर रहा हूं कि एक पथ मौजूद है।
नियमित उपयोगकर्ता के रूप में प्रोग्राम चलाते समय (व्यवस्थापक खाता, लेकिन "व्यवस्थापक के रूप में नहीं"), यह मैप किए गए नेटवर्क ड्राइव पर ठीक काम करता है।
एक व्यवस्थापक के रूप में प्रोग्राम चलाते समय (यूएसी के साथ), यह मौजूद निर्देशिकाओं को खोजने में विफल रहता है। नतीजतन, कार्यक्रम यह स्वीकार करने से इंकार कर देता है कि R:\Steam Games\
एक निर्देशिका है जो वास्तव में मौजूद है।
मैं थोड़ा सा परेशान हूं कि यह क्यों हो रहा है। पूर्ण यूएनसी पथ (\\titanium\Private\Steam Games\
) का उपयोग करना भी काम नहीं करता है।
क्या कोई इससे पहले इसमें भाग लेता है? क्या कोई अच्छा कामकाज है? क्या मुझे पथ अलग-अलग प्रारूपित करना है (नोट: उनमें से अधिकतर वर्तमान में Path.Combine
के साथ स्वरूपित हैं, इसलिए सही होना चाहिए)।
आपकी मदद के लिए धन्यवाद।
(उदाहरण के तौर पर, Directory.Exists(@"R:\Steam Games\")
व्यवस्थापक के रूप में चलते समय झूठी रिटर्न देता है, लेकिन वह फ़ोल्डर मौजूद है। फ़ंक्शन कॉल नियमित रूप से चलते समय सही ढंग से सत्य लौटाता है)।
संपादित करें: वास्तव में यह मुद्दा यह प्रतीत होता है कि एक व्यवस्थापक तकनीकी रूप से एक अलग उपयोगकर्ता खाता है। मैं यूएनसी पथों का भी उपयोग नहीं कर सका, क्योंकि मैं अपने नियमित उपयोगकर्ता के तहत केवल "प्रशासक" के तहत नहीं, मेरे फाइलरवर में लॉग इन था। एक (अपेक्षाकृत हैकिश) वर्कअराउंड के रूप में, मैं अपने प्रोग्राम को नियमित विशेषाधिकारों के साथ चलाता हूं और फिर Process.Start
का उपयोग प्रतीकात्मक लिंक बनाने के लिए cmd.exe के उदाहरण को आमंत्रित करने के लिए करता हूं (और यूएसी प्रॉम्प्ट प्राप्त करने के लिए क्रिया "रनस")।
ऑफ़-विषय के रूप में बंद करने के लिए वोट दिया गया। यहां समस्या यूएसी है (और यूएसी उपयोगकर्ता गैर-यूएसी-उपयोगकर्ता के समान सत्र में नहीं है), और इसका प्रोग्रामिंग के साथ कुछ लेना देना नहीं है। – Lucero
मुझे लगता है कि यह बहुत ही विषय पर है, एक प्रोग्रामर के रूप में आपको उन मुद्दों से दूर रहने की आवश्यकता है जो एक अंतिम उपयोगकर्ता आपके प्रोग्राम को बढ़ाने का फैसला करता है। –
मैं स्कॉट से सहमत हूं। यह एक आम प्रोग्रामिंग समस्या है और मेरी राय में यह इसके लिए एक महान साइट है। –