İçeriğe geç

C# İle Kurulu Bir Uygulamanın Yolunu, Adresini Bulmak

Bilgisayarda kurulu veya yüklü olduğunu bildiğiniz bir uygulamanın tam yolunu bulmak isteyebilirsiniz. Bu gibi bir durumda aslında başvurulması gereken yöntem iç içe bir foreach döngüsü ve Directory sınıfından ibaret olacaktır.

Diyelim ki uygulamamızın adı notepad++.exe olsun. Bu dosyanın da C:\Program Files (x86)\ dizininde kurulu olduğunu biliyoruz.

İşte bu gibi bir durumda aşağıdaki kodu rahatlıkla kullanabiliriz;

string sDir = @"C:\Program Files (x86)";
            string[] directories = Directory.GetDirectories(sDir);

            List<string> files = new List<string>();

            foreach (var directory in directories)
            {
                try
                {
                    string[] tempFiles = Directory.GetFiles(directory, "notepad++.exe", SearchOption.AllDirectories);
                    foreach (var file in tempFiles)
                    {
                        files.Add(file);
                        Console.WriteLine(file);
                    }
                }
                catch (Exception)
                { }
            }
            if (files.Count == 0)
            {
                Console.WriteLine("Hiçbir kayıt bulunamadı!");
            }
            Console.ReadKey();

Burada, try – catch bloğunu kullanmamın sebebi; Bazı uygulamaların dizinlerine erişmekte başarısız olabiliriz. Örneğin temp klasörü altında veya windows klasörü altında o an çalışan bir uygulama geçici/kalıcı ancak dışarıdan erişime izin verilmeyen bir klasör oluşturmuş olabilir.
Eğer bu bloğu kullanmazsanız “… yoluna erişim reddedildi.” gibi bir hata almanız kaçınılmazdır. Bu gibi bir durumda kalmamak için dizinler listeye eklenir iken hata alınabilecek dizinleri listeye eklemeden catch bloğuna düşürüp bir sonraki dizinden ekleme işlemimize devam etmemiz gerekir.

Bu işlemin sonucunda bulacağınız adresler dosyaların tam adresleri olacaktır.

C:\\Program Files (x86)\\Notepad++\\notepad++.exe

gibi…

0 0 votes
Article Rating
Tarih:AnasayfaÇerez Bilgiler
Subscribe
Bildir
guest
0 Yorum
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x