32 Bit Uygulamalar da Program Files (64 Bit) Klasörünü Bulma
Merhabalar; Bir projemiz de 32 Bit derlenmiş bir uygulamamız mevcut, ve C:\Program Files(x86) klasörün de çalışıyor, fakat başka 64 bit bir uygulama C:\Program Files klasöründe bulunuyor ve bizim ona ulaşmamız gerekiyordu, tek bir bilgisayara özel bir durum olmadığı için de global bir şey yapmamız gerekliydi.
Normal şartlarda SpecialFolder enum kullanarak Program Files klasörünü bulmaya çalıştığımız da uygulamamız 32 bit olduğu için bize x86 klasörünü çağıracaktır.
Buna geçici bir çözüm olarak aşağıdaki şekilde kullanabilirsiniz.
var pf = Environment.GetEnvironmentVariable("ProgramW6432");
if (string.IsNullOrEmpty(pf86))
pf = Environment.GetFolder(Environment.SpecialFolder.ProgramFiles)
Burada pf 64 bit klasörü döner, fakat çalıştığınız Windows gerçekten 32 bit ise bu durumda bu kod Null döner ve hataya düşer, bu durumuda düzeltmek için if koşulu ile Program Files klasörü çağrılıyor.