मैं एक WPF अनुप्रयोग है कि Windows इंस्टालर के माध्यम से क्लाइंट मशीन पर स्थापित हो जाता है। यह आवेदन भी एक फ़ाइल एक्सटेंशन (.xyz) पंजीकृत करता है, इसलिए जब उपयोगकर्ता पर दो बार क्लिक एक फ़ाइल, यह मेरी WPF आवेदन को खोलता है और (माइक्रोसॉफ्ट वर्ड की तरह) फ़ाइल प्रदर्शित करता है। इस कार्यक्रम में फाइलों का एक टन भी है जो संसाधन या सामग्री फ़ाइलों के रूप में चिह्नित नहीं है जो इसका उपयोग करता है (उपयोगकर्ता मैनुअल, भाग चित्र, आदि)।WPF कार्य निर्देशिका
समस्या है जब उपयोगकर्ता पर दो बार क्लिक एक .xyz फ़ाइल आता है और यह WPF आवेदन को खोलता है। एप्लिकेशन में अब निर्देशिका की एक कार्यशील निर्देशिका है जहां .xyz फ़ाइल स्थित है। अब प्रोग्राम को किसी भी फाइल (उपयोगकर्ता मैनुअल, पार्ट ड्रॉइंग इत्यादि) की आवश्यकता नहीं है।
सबसे अच्छा तरीका है इस प्रकार की समस्या को संभालने के लिए क्या है? मैं काम कर निर्देशिका (Environment.CurrentDirectory) सेट कर सकते हैं, लेकिन मेरे खुले फ़ाइल संवाद बॉक्स कार्यशील निर्देशिका बदल जाता है जब उपयोगकर्ता की बचत होती है या एक .xyz फ़ाइल को खोलता है। मैं भाग ड्राइंग के लिए एक पैकेट uri इस्तेमाल कर सकते हैं, लेकिन मैं उपयोगकर्ता मैनुअल के लिए Process.Start उपयोग करें, क्योंकि वे एक पीडीएफ कर रहे हैं। मैंने खोज करने की कोशिश की, लेकिन किसी भी चीज़ के साथ नहीं आ सकता था।
Application.ExecutablePath WPF में मौजूद नहीं है, इसलिए मैं प्रतिबिंब का इस्तेमाल किया। यह पीडीएफ फाइलों के लिए काम करता है और छवि फ़ाइलों के लिए, मैं एक पैक यूआरआई का उपयोग कर रहा हूं। ऐसा लगता है कि इस scenerio को संभालने का कुछ बेहतर तरीका होगा। – awilinsk
एक वैकल्पिक विधि जोड़ा गया ... – brendan
[इस लिंक] के रूप में (http://stackoverflow.com/a/948438/419348) ने कहा, 'सिस्टम। रिफ्लेक्शन.एस्प्लर। गेटएक्सिंगिंगएस्प्लोरस()। स्थान 'के बाद स्थान मिल सकता है 'छाया-copying'। – AechoLiu