15 Ekim 2014 Çarşamba

C Sharp Form Uygulamalar Treeview Kullanarak Klasör ve Dosyaları Listeleme ve Dosya Uzantıları Listeleme ve Text Dosyası Olarak Kaydetme



C Sharp dilini kullanarak c sharp form uygulaması olarak treeview ve listbox görsellerini kullanarak sürücüleri, klasörleri ve dosyaları listeleme programı hazırlama. Sürücüde bulunan alt klasörleri ve dosyaları alt alta ağaç şeklinde listeleme örneği. C sharp da treeview kullanımı ve alt node ekleme uygulaması. Treeview nesnesine eklenen node u gösterme işlemleri. Bir klasör ve bu klasörün altındaki bütün klasörler içerindeki bütün dosyaların uzantılarını listbox da listeleme. Listelenen uzantıları text dosyasına kaydetme. Text dosyasından okunan uzantıları jenerik list ve listbox da listeleme. Dosya açma ve kapama işlemleri yapma. Dosya oluşturma ve oluşturulan dosyayı açıp istenilen dataları bu dosyaya yazdırma. Bir dosyanın var olup olmadığını kontrol etme örneği.
c sharp treeview - c sharp treeview node - c sharp node ekleme - c sharp alt node ekleme - treeview nodeları genişletme - treeview expand event - treeview afterselect event - listbox a yeni eleman ekleme - c sharp listbox - c shrp generic list - generic list kullanımı - c sharp textreader - c sharp textwriter





UYGULAMAYI İNDİR




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

namespace C_Sharp_Form_File_Extension_Indexer
{
    public partial class Form1 : Form
    {

        List< string > extensions = new List< string >();

        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, System.EventArgs e)
        {
            string[] dirvers = System.IO.Directory.GetLogicalDrives();

            for (int i = 0; i <= dirvers.GetUpperBound(0); i++)
            {
                treeViewFolders.Nodes.Add(dirvers[i]);
                try
                {
                    string[] folders = System.IO.Directory.GetDirectories(treeViewFolders.Nodes[i].FullPath);

                    string[] folderNames;

                    //Daha önce eklenmemişse alt klasörleri ekle

                    if (treeViewFolders.Nodes[i].GetNodeCount(true) == 0)
                    {
                        for (int j = 0; j <= folders.GetUpperBound(0); j++)
                        {
                            folderNames = folders[j].Split('\\');

                            treeViewFolders.Nodes[i].Nodes.Add(folderNames[folderNames.GetUpperBound(0)]);
                        }
                    }
                }
                catch
                {
                    ; //herhangi bir hata oldugunda hata vermemesi için
                }
            }
        }

        private void treeViewFolders_AfterSelect(object sender, System.Windows.Forms.TreeViewEventArgs e)
        {
            string[] fileNames;

            //herhangi bir klasör seçildiğinde dosyaları listeleyelim

            lstFiles.Items.Clear();

            try
            {
                string[] files = System.IO.Directory.GetFiles(e.Node.FullPath);

                for (int i = 0; i <= files.GetUpperBound(0); i++)
                {
                    fileNames = files[i].Split('\\');

                    lstFiles.Items.Add(fileNames[fileNames.GetUpperBound(0)]);
                }
            }
            catch (Exception)
            {
                ; // bir hata olması durumunda
            }

            lblSelectedFolder.Text = e.Node.FullPath;
        }

        private void treeViewFolders_AfterExpand(object sender, TreeViewEventArgs e)
        {
            // + ya basılınca alt klasörleri listeleyelim

            try
            {
                // seçilen klasör içinde olan klasörleri bir dizi içinde toplayalım.

                string[] selectedFolderDirectories = System.IO.Directory.GetDirectories(e.Node.FullPath + "\\");

                string[] folderNames;
                string[] fileNames;

                // Seçilen klasörün alt klasörleri varsa bunları bu klasör altına ekleyelim

                for (int i = 0; i <= selectedFolderDirectories.GetUpperBound(0); i++)
                {
                    try
                    {
                        //alt klasör içinde alt klasör varsa bu klasörleri bir dizi içinde toplayalım

                        string[] subFolderDirectoriesOfSelectedFolder = System.IO.Directory.GetDirectories(e.Node.Nodes[i].FullPath + "\\");

                        //Daha önce eklenmemişse alt klasörleri ekleyelim

                        if (e.Node.Nodes[i].GetNodeCount(true) == 0)
                            for (int j = 0; j <= subFolderDirectoriesOfSelectedFolder.GetUpperBound(0); j++)
                            {
                                folderNames = subFolderDirectoriesOfSelectedFolder[j].Split('\\');

                                e.Node.Nodes[i].Nodes.Add(folderNames[folderNames.GetUpperBound(0)]);
                            }
                    }
                    catch
                    {
                        ; //herhangi bir hata oldugunda hata vermemesi için
                    }
                }

                //seçilen klasördeki dosyaları listeleyelim

                lstExtension.Items.Clear();

                string[] files = System.IO.Directory.GetFiles(e.Node.FullPath);

                for (int i = 0; i <= files.GetUpperBound(0); i++)
                {
                    fileNames = files[i].Split('\\');

                    lstExtension.Items.Add(fileNames[fileNames.GetUpperBound(0)]);
                }
            }
            catch
            {
                ; // herhangi bir hata oldugunda hata vermemesi için
            }

            lblSelectedFolder.Text = e.Node.FullPath;
        }

        private void btnSearch_Click(object sender, EventArgs e)
        {
            try
            {

                btnSearch.BackColor = Color.Red;
                btnSearch.Enabled = false;
                btnSave.Enabled = false;
                extensions.Clear();
                System.IO.FileInfo dosya = new System.IO.FileInfo("extensions.txt");

                if (dosya.Exists == true) //dosya var ise içeriğini okuyalım
                {

                    System.IO.TextReader text = System.IO.File.OpenText("extensions.txt");

                    string data;

                    lstExtension.Items.Clear();

                    while ((data = text.ReadLine()) != null)
                    {
                        //extension.txt de listelenen uzantıları listemize ekleyelim.

                        extensions.Add(data);

                        lstExtension.Items.Add(data);
                    }
                    text.Close(); //dosyayı kapatalım
                }


                if (lblSelectedFolder.Text.Trim() == "")
                {
                    MessageBox.Show("Bir klasör seçmelisiniz." ,"HATA",MessageBoxButtons.OK,MessageBoxIcon.Error);
                }
                else
                {
                    DirectoryInfo d = new DirectoryInfo(this.lblSelectedFolder.Text);

                    findDirectories(d);
                }
            }
            catch (Exception)
            {
                ; // herhangi bir hata oldugunda hata vermemesi için
            }

            btnSearch.BackColor = Color.Lime;
            btnSearch.Enabled = true;
            btnSave.Enabled = true;

        }

        private void findDirectories(DirectoryInfo directory)
        {
            try
            {
                foreach (DirectoryInfo item in directory.GetDirectories())
                {
                    findDirectories(item);

                    Application.DoEvents();

                    try
                    {
                        FileInfo[] Files = item.GetFiles(); //Getting Text files

                        foreach (FileInfo file in Files)
                        {
                            string str = file.Extension;

                            if (!extensions.Contains(str))
                            {
                                extensions.Add(str);
                                lstExtension.Items.Add(str);
                            }
                        }
                    }
                    catch (Exception)
                    {
                        ; // herhangi bir hata oldugunda hata vermemesi için
                    }

                 
                }
            }
            catch (Exception)
            {
                ; // herhangi bir hata oldugunda hata vermemesi için
            }
           
        }

        private void btnSave_Click(object sender, EventArgs e)
        {
            int i;

            //listeyi tekrar kaydetmek için dosya bilgilerini tekrar alalım

            System.IO.TextWriter dosya = System.IO.File.CreateText("extensions.txt");

            extensions.Sort();

            for (i = 0; i < extensions.Count; i++)
            {
                //listeye eklediğimiz uzantıları dosyaya yazalım

                dosya.WriteLine(extensions[i]);
            }

            dosya.Close();//Dosyayı kapatalım
        }
    }
}

UYGULAMAYI İNDİR

Hiç yorum yok :

Yorum Gönder