2015-11-23 22 views
18

Bir 64-bit işletim sisteminde Program Files dizinini almaya çalışıyorum.Program Dosyaları dizinini nasıl edinebilirim?

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

Herhangi bir yardım: Bu kod aşağıda aynı cevabı Program Files (x86) döndürür?

+2

üzerinde çalışan 64 bit Windows
64 bit programı üzerinde çalışan? – ChrisF

+3

Muhtemelen ilgili http://stackoverflow.com/questions/3397818/environment-specialfolder-programfiles-value-for-a-32-bit-application-on-windows – Codor

+0

Her CPU için mod hata ayıklamasında derledim, denedim x86 derleyin ama aynı sonucu döndürür –

cevap

4

İstediğin geçerli:

Environment.GetEnvironmentVariable("ProgramW6432") 

O x64 programı dizin yolunu dönecektir.

Çevre değişkenleri ve WOW64'te ile ilgili daha fazla bilgi için burayı okuyun: https://msdn.microsoft.com/en-us/library/windows/desktop/aa384274(v=vs.85).aspx

+3

Sanırım bir açıklamayı hak ediyor ... –

+4

Bu bir "numara". Environment.SpecialFolder' kullanmak daha iyidir. – i486

+0

Bu nasıl bir "hile"? Bir ortam değişkeni çağırıyor ve OP'in peşinde olduğu değeri döndürecek. Özel klasörü kullanmak onun için işe yaramıyor. – JaggenSWE

25

Elbette 64 bit modda programınızı çalıştırmanız gerekir. Bu

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

için

1

bu bağlantıyı C# - How to get Program Files (x86) on Windows 64 bit

kontrol edin bit 32 Projesi> Sizin Proje Özellikleri ...> Yapı> devre dışı bırakmak tercih et: O zaman bu

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

gidin yazdırır

Bağlantı üstte, bu üç Windows yapılandırmasında x86 Program Files directory ürününü döndüreceğini gösterir:

32 bit Windows
32 bit programı test programı 32 bit ya da 64 bit olarak derlenmiş mi 64 bit pencereler

İlgili konular