1.513 kez okundu

Asp.net de treeview ile sitemizin dizin ve dosyalarının gösterimi

10 10 1.513 kez okundu incelendi

Sitemizin bulunduğu dizin içerisinde bulunan klasör ve dosya yapılarını (Hiyerarşik yapıyı) treeview kontrolu aracılığıyla göstermeye çalışacağım. Daha çok yönetici panelinde kullanabileceğimiz bir uygulama yada oluşturduğumuz resim dizini içerisindeki resimleri gösteren bir uygulama da yapabiliriz.

Şimdi uygulamamızı yapmaya başlayalım.

İlk olarak bir websitesi oluşturdum. Oluşturduğum site içerisindeki bir sayfaya treeview kontrolünü sürükleyip bırakıyorum. Daha sonra sayfanın Page load ksımına gelerek aşağıdaki kodları yazıyoruz.

       if (!Page.IsPostBack)
{
// Uygulamamızın fiziksel yolunu alarak treviewin kök node unu oluşturuyoruz.
TreeNode root = new TreeNode(Request.PhysicalApplicationPath);
root.Text = "My Website";
TreeViewSiteExplorer.Nodes.Add(root);
// bu iki method dizinleri ve dosyaları tarıyor.
GetSubDirectories(Request.PhysicalApplicationPath, root);
GetFiles(Request.PhysicalApplicationPath, root);
}

Request.PhysicalApplicationPath ile websitemizin fiziksel yolunu (C:UsersCodeDocuments… gibi bir string) alıyoruz. Şimdi yukarıda geçen sitemizin kök dizininde bulunan dosya ve klasörleri tarayacak olan methodları yazmaya başlıyalım. Bu methodlar recursive methodlar olacak. Recursive method kendi kendisini çağıran methoddur. Recursive yapı ile iç içe olan bütün yapıları control edebiliyoruz.
Şimdi dizinleri yani klasörleri ekleyen method yazalım.

private void GetSubDirectories(string path,TreeNode parentNode)
{
// verilen path de olan bütün dizinlerin yollarını alıyoruz.
string[] dirs = Directory.GetDirectories(path);
if (dirs.Length > 0)
{
foreach (string dir in dirs)
{
TreeNode foldernode = new TreeNode();
// dir burada bulunan dizinin(klasör) tam yolu olduğu için burada kesme yapıyoruz
ve sadece klasör ismini alıyoruz
foldernode.Text = dir.Substring(path.Length);
parentNode.ChildNodes.Add(foldernode);
// dizin hepsinin kapalı olarak gelmesini sağlar
parentNode.CollapseAll();
// dizin içierisinde dizin barındırabileceği için bunuda kontrol ediyoruz.Recursive yapı
GetSubDirectories(dir, foldernode);
// bu dizinler altında dosya olup olmadığınıda kontrol ediyoruz alt kısımdaki method ile
GetFiles(dir, foldernode);
}
}
}

Dizinleri tararken dikkat ederseniz, GetFiles() method ile dizin içierisindeki dosyalarıda belirliyor. Şimdi dosyaları ekleyen methodumuzu yazalım.

    private void GetFiles(string path,TreeNode parentnode)
{
string[] files = Directory.GetFiles(path);
if (files.Length == 0 && parentnode.ChildNodes.Count == 0)
{
TreeNode bosnode = new TreeNode("Dizin BOŞ");
parentnode.ChildNodes.Add(bosnode);
}
else
{
foreach (string file in files)
{
TreeNode filenode = new TreeNode(file.Substring(path.Length));
parentnode.ChildNodes.Add(filenode);
}
}
}

Evet, dosyaları da taradıktan sonra işlemimiz tamamlandı. Yaptığımız uygulamanın son haline bir bakalım.

http://resim.sanalkurs.net/uploads/Untitled_20.jpg

Siz de bu örnekten yola çıkarak belirlediğiniz dizinde resimleri yönetebileceğiniz bir yapı oluşturmaya çalışın.

İyi çalışmalar dilerim.

Gelen aramalar :

Paylaş !

Yoruma kapali.

Önceki yazıyı okuyun:
Php switch kodu nedir

Php, switch kodu sayfaya gitme mesela www.siteadi.com/iletisim.php değil de, www.siteadi.com/index.php?Git=iletisim şeklinde olmasını sağlayan kodu sizlerle paylaşacağım.

Kapat
Barış Ozcan Facebook Sayfasi
Barış Ozcan Twitter