c# – Dizinde ki dosyaları ve klasörleri listelemek

21 Mar

Merhaba arkadaşlar bugün sizlere başlıktada belirttiğim gibi, bir dizinde ki dosyaları ve klasörleri nasıl listeleyeceğimizi anlatacağım.

Bildiğiniz gibi bir klasör altında binlerde klasör ve dosya olabilir.

Bunun için 2 adet method yaptım, bu methodlar getDirectories ve getFileInfo

getDirectories methodu belirttiğimiz dizinde ki tüm klasörleri döner ve altında ki tüm klasörleri listeler, bu method içinde dönerken dosyaları listeleme işlemini ise getFileInfo yapıyor.

ListFile

Aşağıda kodları inceleyebilirsiniz. Teşekkürler…

Kodlara geçmeden önce kütüphanemize using System.IO; eklemeyi unutmayalım.

        /// <summary>
        /// Dizin altında ki klasörleri ve dosyaları listeler. semihcelikol.com
        /// </summary>
        /// <param name="directory"></param>
        public void getDirectories(string _directoryPath, ListBox _listbox)
        {
            try
            {
                if (_directoryPath != "")
                {
                    //Verilen yol'daki klasörleri alıp,diziye atıyoruz.
                    string[] directories = Directory.GetDirectories(_directoryPath);
                    
                    if (directories.Count() > 0)
                    {
                        //tüm klasör dönüyoruz.
                        foreach (string LoopFolder in directories)
                        {
                            //DirectoryInfo ile klasörün bilgilerini çekiyoruz.
                            DirectoryInfo dirInfoDirectory = new DirectoryInfo(LoopFolder);
                            _listbox.Items.Add("+" + dirInfoDirectory.Name);
                            //Klasör altında ki dosylarımızı listeliyoruz.
                            this.getFileInfo(LoopFolder, _listbox);
                        }
                    }
                    else
                    {
                        DirectoryInfo dirInfoDirectory = new DirectoryInfo(_directoryPath);
                        _listbox.Items.Add("+" + dirInfoDirectory.Name);

                        this.getFileInfo(_directoryPath, _listbox);
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "HATA", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        /// <summary>
        /// Klasör altında ki dosyaları listeler.
        /// </summary>
        /// <param name="_directoryPath"></param>
        /// <param name="_listbox"></param>
        public void getFileInfo(string _directoryPath, ListBox _listbox)
        {
            try
            {
                //Klasör altında ki dosyaları listeler
                DirectoryInfo dirInfoFile = new DirectoryInfo(_directoryPath);
                FileInfo[] files = dirInfoFile.GetFiles();

                string[] directoriesPath = Directory.GetDirectories(_directoryPath);

                if (directoriesPath.Count() > 0)
                {
                    this.getDirectories(_directoryPath,_listbox);
                }

                foreach (FileInfo fi in files)
                {
                    _listbox.Items.Add("    -" + fi.Name);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "HATA", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

One Reply to “c# – Dizinde ki dosyaları ve klasörleri listelemek”

Bir Cevap Yazın