2010-02-17 18 views
17

के आर्किटेक्चर के बावजूद प्रोग्राम फ़ाइलों का मार्ग कैसे प्राप्त करें I C#/.NET में प्रोग्रामिंग कर रहा हूं। मैं लक्ष्य मशीन से प्रोग्राम फ़ाइलें निर्देशिका वापस करने में सक्षम होना चाहता हूं इससे कोई फर्क नहीं पड़ता कि लक्ष्य मशीन का आर्किटेक्चर क्या है। स्पष्टीकरण के लिए, मैं इसे C (or whatever drive the OS is on):/Program Files वापस लौटना चाहता हूं इससे कोई फर्क नहीं पड़ता कि विंडोज़ का उनका संस्करण क्या है।लक्ष्य मशीन

मैं निर्देशिका में केवल हार्डकोड कर सकता हूं सिवाय इसके कि यदि उपयोगकर्ता विंडोज चला रहा था जो सी: ड्राइव पर स्थापित नहीं है, तो यह काम नहीं करेगा।

मैं

FileInfo(System.Environment.GetFolderPath(System.Environment.SpecialFolder.ProgramFiles) 

मिली लेकिन मैं इसे एक 64 बिट विंडोज़ मशीन पर Program Files (x86) फ़ोल्डर रिटर्न लगता है।

+0

मुझे लगता है कि उनमें से एक "सी:/प्रोग्राम फ़ाइलें" गलत होना चाहिए। –

+1

देखें http://stackoverflow.com/questions/194157/c-how-to-get-program-files-x86-on-vista-x64 – adrianbanks

उत्तर

29

System.Environment.GetFolderPath(System.Environment.SpecialFolder.ProgramFiles) रिटर्न एक 64-बिट मशीन पर "c:\Program Files", जब तक कोड 86 है, जो मामले में यह रिटर्न "C:\Program Files (x86)" लक्षित करने के लिए का निर्माण है, इसलिए मुझे लगता है कि यह है कि आप के लिए काम करेगा।

+1

यदि कोई प्लेटफ़ॉर्म किसी भी CPU पर सेट किया गया है तो क्या होगा? – PICyourBrain

+0

यदि मैं अपनी 64-बिट मशीन पर किसी भी CPU का उपयोग करके कोड संकलित करता हूं तो यह '" सी: \ प्रोग्राम फ़ाइलें "लौटाता है (अभी इसे सत्यापित किया गया है)। –

+1

मैंने भी किया और यह मेरे पर प्रोग्राम फ़ाइलें (x86) देता है ... – PICyourBrain

संबंधित मुद्दे