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.
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);
}
}
}