ToolStripMenuItem Nesnesine Alt Klasör İsimlerini Listele - CSharp


MenuStrip üzerinde bulunan bir ToolStripMenuItem nesnesine alt klasör isimlerini listeleyen ve bu isimlere tıklandığında da bu alt klasörleri açan csharp kodu alternatifidir.

Kod


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace OrnekProje
{
    public partial class AnaForm : Form
    {
        public AnaForm()
        {
            InitializeComponent();
        }

        //--------------------------------------------------
        //İçeriklerin listeleneceği klasörü belirle.
        //--------------------------------------------------
        public static string KlasorYolu { get; set; } = Path.Combine("C:\");

        //--------------------------------------------------
        //Verilen ToolStripMenuItem nesnesine klasörleri listele.
        //--------------------------------------------------
        void KlasorListesiniYukle(string yol, ToolStripMenuItem yuklenecek)
        {
            try
            {
                yuklenecek.DropDownItems.Clear();

                string[] klasorler = Directory.GetDirectories(yol);

                foreach (string klasorAdi in klasorler)
                {
                    ToolStripMenuItem item = new ToolStripMenuItem();
                    item.Text = Path.GetFileName(klasorAdi);
                    yuklenecek.DropDownItems.Add(item);
                    item.Click += new EventHandler(klasorAc_Click);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "KlasorListesiniYukle");
            }
        }

        //--------------------------------------------------
        //İlgili ToolStripMenuItem nesnesine 
        //tıklandığında o klasörü aç.
        //--------------------------------------------------
        private void klasorAc_Click(object sender, EventArgs e)
        {
            var v = sender as ToolStripMenuItem;
            string altKlasorYolu = Path.Combine(KlasorYolu, v.Text);

            if (Directory.Exists(altKlasorYolu))
            {
                Process.Start(altKlasorYolu);
            }
        }

        private void button1_Click(object sender, EventArgs e)
        {
            KlasorListesiniYukle(KlasorYolu, klasorlerToolStripMenuItem);
        }
    }
}

Etiketler
csharp