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
}
}
}
Hiç yorum yok :
Yorum Gönder