Çözüldü C# bir klasörde bulunan belirli karakterle başlayan dosyaları listeleme

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.

sauranex

Hectopat
Katılım
24 Eylül 2020
Mesajlar
654
Makaleler
1
Çözümler
3
Merhaba, başlıkta yazdığım gibi bir yöntem lazım. Kod kısmında istediğim yöntem açıkca mevcut, çok araştırdım fakat bulamadım. Sabit bir klasör var ve bu klasörde [ABC] ve [APG] ile başlayan .txt dosyaları var. cmboxBuildType'da seçilen index'e göre işlem yapıyor, index 1 seçiliyse [ABC] , index 2 seçiliyse [APG] ile başlayan .txt dosyalarının adını othercombobox'a öğe olarak ekliyor.

[CODE lang="csharp" title="Yöntem"] if (cmboxBuildType.SelectedIndex == 0) //[ABC]
{
othercombobox.Items.Clear();//Her listelemeden önce temizliyoruz.
//(Application.StartupPath + @"\settings\profiles") Sabit dosya yolu
//Dosya yolumuz sabit, sadece klasörde bulunan [ABC] ile başlayan .txt dosyalarının adını başka bir combobox'a öğe olarak eklemek.
//othercombobox.Items.Add(abc.ToString);
}
if (cmboxBuildType.SelectedIndex == 1) //[ADG]
{
othercombobox.Items.Clear(); //Her listelemeden önce temizliyoruz.
//(Application.StartupPath + @"\settings\profiles") Sabit dosya yolu
//Dosya yolumuz sabit, sadece klasörde bulunan [APG] ile başlayan .txt dosyalarının adını başka bir combobox'a öğe olarak eklemek.
//othercombobox.Items.Add(apg.ToString);
}[/CODE]
 
Çözüm
C#:
using System;
using System.Windows.Forms;
using System.IO;


namespace WindowsFormsApp7
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        private void cmboxBuildType_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (cmboxBuildType.SelectedIndex == 0) //[ABC]
            {
                othercombobox.Items.Clear();//Her listelemeden önce temizliyoruz.
                getFiles("[ABC]");

            }
            if (cmboxBuildType.SelectedIndex == 1) //[ADG]
            {
                othercombobox.Items.Clear(); //Her listelemeden önce temizliyoruz.
                getFiles("[APG]");
            }
        }
        void getFiles(string fileName)
        {
            try
            {
                string[] files = Directory.GetFiles((Application.StartupPath) + @"\\settings\\profiles\\");
                foreach (string file in files)
                {
                    FileInfo fileInfo = new FileInfo(file);
                    string dosyaAdi = fileInfo.Name;

                    Boolean isTrue= file.Contains(fileName);
                    if (isTrue==true)
                    {
                        othercombobox.Items.Add(dosyaAdi);
                        othercombobox.SelectedIndex = 0;
                    }
                    else
                    {
                        othercombobox.Items.Add("");
                        othercombobox.SelectedIndex = 0;
                    }
                }
            }
            catch (Exception Ex)
            {
                MessageBox.Show(Ex.Message);
            }

        }
        
    }
}
C#:
using System;
using System.Windows.Forms;
using System.IO;


namespace WindowsFormsApp7
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        private void cmboxBuildType_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (cmboxBuildType.SelectedIndex == 0) //[ABC]
            {
                othercombobox.Items.Clear();//Her listelemeden önce temizliyoruz.
                getFiles("[ABC]");

            }
            if (cmboxBuildType.SelectedIndex == 1) //[ADG]
            {
                othercombobox.Items.Clear(); //Her listelemeden önce temizliyoruz.
                getFiles("[APG]");
            }
        }
        void getFiles(string fileName)
        {
            try
            {
                string[] files = Directory.GetFiles((Application.StartupPath) + @"\\settings\\profiles\\");
                foreach (string file in files)
                {
                    FileInfo fileInfo = new FileInfo(file);
                    string dosyaAdi = fileInfo.Name;

                    Boolean isTrue= file.Contains(fileName);
                    if (isTrue==true)
                    {
                        othercombobox.Items.Add(dosyaAdi);
                        othercombobox.SelectedIndex = 0;
                    }
                    else
                    {
                        othercombobox.Items.Add("");
                        othercombobox.SelectedIndex = 0;
                    }
                }
            }
            catch (Exception Ex)
            {
                MessageBox.Show(Ex.Message);
            }

        }
        
    }
}
 
Çözüm
Hocam çok teşekkürler 2 gündür burada takılıp kalmıştım. Benim için if (isTrue == true) bloğunda else kullanımına gerek yok. Tek bir sorun var o da dosya uzantısı olmadan dosya ismini almak, "Without extension" gibi.
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…