C# – Klasör ve Dosya Hiyerarşisi Oluşturma


Bir Windows Application açalım..

Form üzerine 1 adet TreeView ve 1 tane button koyup aşağıdaki kodları yazalım..



using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;

namespace CS_SearchDirectory
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

//Dosya sistemi dallanmasını oluşturan döngü..
private TreeNode src(string konum,TreeNode t)
{
//ilk olarak dallanmanınn başlayacağı klasörü belirtir..
//sonraki kullanımlarında iç içe klasör yapılarındaki klasörleri tek tek belirtir..

DirectoryInfo parentDir = new DirectoryInfo(konum);

//O anki klasördeki içindeki tüm doyalarda dön..
foreach (FileInfo f in parentDir.GetFiles())
{
//Dosyaları o klasör altına ekle..
t.Nodes.Add(f.Name);
}

//O anki klasörün altındaki klasörler için dön..
foreach (DirectoryInfo dir in parentDir.GetDirectories())

{
//eğer klasör varsa bu klasörü belirten bir treeNode oluştur..
TreeNode tn = new TreeNode(dir.Name);
//bu klasör dosya içerir yada içermez klasör içerir yada içermez biz yinede bir klasör olduğu için metodu kendi kendine çağırtıp klasör içini kontrol ediyoruz..
//bu klasör için yukardaki işlemler gerçekleşir,alt klasörleri ve dosyalar dallanma şeklinde, treeNode’lar halinde oluşur..
//Bu metod zaten treeNode döndürdüğü için oluşan treeNode’ların her biri bir klasör’dür ve üst treeNode ‘a eklenmesi gerekir..Burada Parent klasör t Node’ı oldugu için alttaki satırda iç klasörler t’ye eklenir..
t.Nodes.Add(this.src(dir.FullName, tn));
}

//gönderilen ilk directory geri gönderilir..
return t;
}

private void button1_Click(object sender, EventArgs e)
{
FolderBrowserDialog fd = new FolderBrowserDialog();

if (fd.ShowDialog() == DialogResult.OK)
{
//Dallanma oluşturmuş treeNode TreeView’a eklenir..
this.treeView1.Nodes.Add(this.src(fd.SelectedPath, new TreeNode(fd.SelectedPath)));
}
}
}
}

Reklamlar

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

w

Connecting to %s