2015-11-23 3 views
18

मैं 64-बिट ओएस में प्रोग्राम फ़ाइलें निर्देशिका प्राप्त करने का प्रयास कर रहा हूं।मैं प्रोग्राम फ़ाइलें निर्देशिका कैसे प्राप्त करूं?

Console.WriteLine(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFilesX86).ToString()); 
Console.WriteLine(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles).ToString()); 

किसी भी मदद की: नीचे इस कोड को एक ही जवाब Program Files (x86) रिटर्न?

+2

पर चल रहे 64 बिट विंडोज
64 बिट कार्यक्रम पर चल रहा है? – ChrisF

+3

संभवतः http://stackoverflow.com/questions/3397818/environment-specialfolder-programfiles-value-for-a-32-bit-plplication-on-windows – Codor

+0

से संबंधित किसी भी CPU के लिए मैं मोड डीबग में संकलित करता हूं, मैंने कोशिश की x86 में संकलित करें, लेकिन यह उसी परिणाम को वापस कर देता है –

उत्तर

4

यह तुम क्या चाहते है:

Environment.GetEnvironmentVariable("ProgramW6432") 

यह x64 कार्यक्रम निर्देशिका के लिए पथ वापस आ जाएगी।

पर्यावरण चर और WOW64 के बारे में अधिक जानकारी के लिए, यहाँ पढ़ें: https://msdn.microsoft.com/en-us/library/windows/desktop/aa384274(v=vs.85).aspx

+3

मुझे लगता है कि यह एक स्पष्टीकरण के योग्य है ... –

+4

यह एक "चाल" है। 'Environment.SpecialFolder' का उपयोग करना बेहतर है। – i486

+0

यह कैसे "चाल" है? यह एक पर्यावरण परिवर्तक को बुला रहा है और ओपी के बाद मूल्य वापस कर देगा। विशेष फ़ोल्डर्स का उपयोग करना उसके लिए काम नहीं करता है। – JaggenSWE

25

आप निश्चित रूप से 64 बिट मोड में अपने कार्यक्रम चलाना चाहिए। परियोजना> आपका प्रोजेक्ट गुण ...> निर्माण> अक्षम पसंद करते हैं 32-बिट

1

इस

Console.WriteLine(Environment.GetEnvironmentVariable("ProgramFiles(x86)")); 

के लिए इस लिंक C# - How to get Program Files (x86) on Windows 64 bit

की जांच करें: तो फिर इस

C:\Program Files (x86) 
C:\Program Files 

जाओ करने के लिए प्रिंट होगा

उपरोक्त लिंक से पता चलता है कि यह इन तीनों विंडोज कॉन्फ़िगरेशन में x86 Program Files directory वापस कर देगा:

32 बिट Windows
32 बिट कार्यक्रम अपने परीक्षण कार्यक्रम 32 बिट या 64 बिट के रूप में संकलित किया गया है 64 बिट विंडोज़

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