c# – Dizindeki dosyaları ve klasörleri listelemek

21 Mar

Merhaba arkadaşlar bugün sizlere başlıktada belirttiğim gibi, bir dizindeki 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 dizindeki tüm klasörleri döner ve altındaki 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">
        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ındaki dosyaları listeler.
        /// </summary>
        /// <param name="_directoryPath">
        /// <param name="_listbox">
        public void getFileInfo(string _directoryPath, ListBox _listbox)
        {
            try
            {
                //Klasör altındaki 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);
            }
        }

2 Replies to “c# – Dizindeki dosyaları ve klasörleri listelemek

Bir Cevap Yazın