GTAMulti.com - Türkiye'nin Türkçe GTA Sitesi
20 Nisan 2026, 00:11:36

C# için yardım.

Başlatan xentrow, 30 Haziran 2019, 23:32:34

« önceki - sonraki »

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

xentrow

SA-MP Client için bir dizin belirlemek istiyorum. Doğru dizini seçsem bile hata veriyor ve MessageBox kapanmıyor. Bilerek hatalı dizin seçtiğimde MessageBox'u kapatmak için 3 kere tıklamam gerekiyor. Yardımlarınızı bekliyorum. Kodlarım bu şekilde:

        private void Button3_Click(object sender, EventArgs e)
        {
            FolderBrowserDialog fbd = new FolderBrowserDialog();
            if (fbd.ShowDialog() == DialogResult.OK)
            {
                DirectoryInfo di = new DirectoryInfo(fbd.SelectedPath);
                FileInfo[] rgFiles = di.GetFiles();
                foreach (FileInfo fi in rgFiles)
                {
                    if (fi.Name == "samp.exe" && fi.Name == "samp.dll")
                    {
                        ayarlar12.Default.konum = fbd.SelectedPath;
                        MessageBox.Show(string.Format("Yeni dosya yolu: {0}", ayarlar12.Default.konum), "BİLGİ", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                    else if (fi.Name != "samp.exe" && fi.Name != "samp.dll")
                    {
                        MessageBox.Show("Lütfen geçerli bir dosya yolu giriniz.", "HATA", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                }
            }
        }


CaLderoN

Uyarı mesajını gönderdikten sonra döngüyü durdurman gerek. Durdurmazsan döngü her turda aynı kontrolleri tekrar yapacaktır. Bunun içinde "break;" deyimini kullanman lazım.
Kolay gelsin.
PAWN Kodu: Seç
        private void Button3_Click(object sender, EventArgs e)
        {
            FolderBrowserDialog fbd = new FolderBrowserDialog();
            if (fbd.ShowDialog() == DialogResult.OK)
            {
                DirectoryInfo di = new DirectoryInfo(fbd.SelectedPath);
                FileInfo[] rgFiles = di.GetFiles();
                foreach (FileInfo fi in rgFiles)
                {
                    if (fi.Name == "samp.exe" && fi.Name == "samp.dll")
                    {
                        ayarlar12.Default.konum = fbd.SelectedPath;
                        MessageBox.Show(string.Format("Yeni dosya yolu: {0}", ayarlar12.Default.konum), "BİLGİ", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                    else if (fi.Name != "samp.exe" && fi.Name != "samp.dll")
                    {
                        MessageBox.Show("Lütfen geçerli bir dosya yolu giriniz.", "HATA", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        break;
                    }
                }
            }
        }

İletişim: cataltepe@outlook.com.tr
https://linkedin.com/in/omurcataltepe/

xentrow


Hocam hata mesajı sorunu düzeldi çok sağ ol ama şimdi de "C:\Program Files (x86)\Rockstar Games\GTA San Andreas"ı seçmeme rağmen hala hata mesajını alıyorum.


CaLderoN

Alıntı yapılan: darkwing - 01 Temmuz 2019, 00:15:10


Hocam hata mesajı sorunu düzeldi çok sağ ol ama şimdi de "C:\Program Files (x86)\Rockstar Games\GTA San Andreas"ı seçmeme rağmen hala hata mesajını alıyorum.


O zaman ilk uyarıya da aynısını eklemek gerek.
PAWN Kodu: Seç
       private void Button3_Click(object sender, EventArgs e)
        {
            FolderBrowserDialog fbd = new FolderBrowserDialog();
            if (fbd.ShowDialog() == DialogResult.OK)
            {
                DirectoryInfo di = new DirectoryInfo(fbd.SelectedPath);
                FileInfo[] rgFiles = di.GetFiles();
                foreach (FileInfo fi in rgFiles)
                {
                    if (fi.Name == "samp.exe" && fi.Name == "samp.dll")
                    {
                        ayarlar12.Default.konum = fbd.SelectedPath;
                        MessageBox.Show(string.Format("Yeni dosya yolu: {0}", ayarlar12.Default.konum), "BİLGİ", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        break;
                    }
                    else if (fi.Name != "samp.exe" && fi.Name != "samp.dll")
                    {
                        MessageBox.Show("Lütfen geçerli bir dosya yolu giriniz.", "HATA", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        break;
                    }
                }
            }
        }

İletişim: cataltepe@outlook.com.tr
https://linkedin.com/in/omurcataltepe/

xentrow

Ekledim fakat hala aynı hata mesajını alıyorum.


CaLderoN

Alıntı yapılan: darkwing - 01 Temmuz 2019, 00:20:33

Ekledim fakat hala aynı hata mesajını alıyorum.


Şöyle bir mantık hatası var. fi.Name'yi iki değere birden eşitlemişsin. Bir değişkenin iki değeri birden olamaz. O kısmı && (ve koşulu) değil || (veya koşulu) olarak düzenlersen sorun düzelecektir. Aşağıda ki kodu dener misin?
PAWN Kodu: Seç
       private void Button3_Click(object sender, EventArgs e)
        {
            FolderBrowserDialog fbd = new FolderBrowserDialog();
            if (fbd.ShowDialog() == DialogResult.OK)
            {
                DirectoryInfo di = new DirectoryInfo(fbd.SelectedPath);
                FileInfo[] rgFiles = di.GetFiles();
                foreach (FileInfo fi in rgFiles)
                {
                    if (fi.Name == "samp.exe" || fi.Name == "samp.dll")
                    {
                        ayarlar12.Default.konum = fbd.SelectedPath;
                        MessageBox.Show(string.Format("Yeni dosya yolu: {0}", ayarlar12.Default.konum), "BİLGİ", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        break;
                    }
                    else if (fi.Name != "samp.exe" && fi.Name != "samp.dll")
                    {
                        MessageBox.Show("Lütfen geçerli bir dosya yolu giriniz.", "HATA", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        break;
                    }
                }
            }
        }

İletişim: cataltepe@outlook.com.tr
https://linkedin.com/in/omurcataltepe/

xentrow


CaLderoN

Seçtiğin dizinde samp.dll ve samp.exe mevcut mu?

İletişim: cataltepe@outlook.com.tr
https://linkedin.com/in/omurcataltepe/

xentrow


CaLderoN

Alıntı yapılan: darkwing - 01 Temmuz 2019, 00:29:30




PAWN Kodu: Seç
       private void Button3_Click(object sender, EventArgs e)
        {
            bool l_fExists = false;
            FolderBrowserDialog fbd = new FolderBrowserDialog();
            if (fbd.ShowDialog() == DialogResult.OK)
            {
                DirectoryInfo di = new DirectoryInfo(fbd.SelectedPath);
                FileInfo[] rgFiles = di.GetFiles();
                foreach (FileInfo fi in rgFiles)
                {
                    if (fi.Name == "samp.exe" || fi.Name == "samp.dll")
                    {
                        ayarlar12.Default.konum = fbd.SelectedPath;
                        MessageBox.Show(string.Format("Yeni dosya yolu: {0}", ayarlar12.Default.konum), "BİLGİ", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        l_fExists = true;
                        break;
                    }
                }
                if (l_fExists == false)
                {
                    MessageBox.Show("Lütfen geçerli bir dosya yolu giriniz.", "HATA", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
        }

İletişim: cataltepe@outlook.com.tr
https://linkedin.com/in/omurcataltepe/

xentrow

Oldu hocam @CaLderoN çok teşekkürler. Konu K&A.