ListView da Directory Bilgilerini Göstermek
Bu makalede Listview nesnesinde C deki dosyaları ve bu dosyalara en son erişim tarihlerini listview da göstereceğiz. Aşağıdaki şekli inceleyin.
Şekil 1
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 WindowsApplication1
{
public partial class Form1 : Form
{
private System.Collections.Specialized.StringCollection folderCol;
private System.Windows.Forms.ImageList imageBuyuk;
private System.Windows.Forms.ImageList imageKucuk;
private System.Windows.Forms.ListView dosyalar;
private System.Windows.Forms.Label lbldosyapath;
public Form1()
{
InitializeComponent();
folderCol = new System.Collections.Specialized.StringCollection();
CreateHeadersAndFillListView();
PaintListView(@"C:\");
folderCol.Add(@"C:\");
this.dosyalar.ItemActivate += new System.EventHandler(this.lwFilesAndFolders_ItemActivate);
}
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
this.lbldosyapath = new System.Windows.Forms.Label();
this.imageBuyuk = new System.Windows.Forms.ImageList(this.components);
this.imageKucuk = new System.Windows.Forms.ImageList(this.components);
this.dosyalar = new System.Windows.Forms.ListView();
this.SuspendLayout();
//
// lbldosyapath
//
this.lbldosyapath.Location = new System.Drawing.Point(16, 9);
this.lbldosyapath.Name = "lbldosyapath";
this.lbldosyapath.Size = new System.Drawing.Size(528, 19);
this.lbldosyapath.TabIndex = 3;
//
// imageBuyuk
//
this.imageBuyuk.ColorDepth = System.Windows.Forms.ColorDepth.Depth8Bit;
this.imageBuyuk.ImageSize = new System.Drawing.Size(32, 32);
this.imageBuyuk.TransparentColor = System.Drawing.Color.Transparent;
//
// imageKucuk
//
this.imageKucuk.ColorDepth = System.Windows.Forms.ColorDepth.Depth8Bit;
this.imageKucuk.ImageSize = new System.Drawing.Size(16, 16);
this.imageKucuk.TransparentColor = System.Drawing.Color.Transparent;
//
// dosyalar
//
this.dosyalar.LargeImageList = this.imageBuyuk;
this.dosyalar.Location = new System.Drawing.Point(16, 37);
this.dosyalar.MultiSelect = false;
this.dosyalar.Name = "dosyalar";
this.dosyalar.Size = new System.Drawing.Size(400, 249);
this.dosyalar.SmallImageList = this.imageKucuk;
this.dosyalar.TabIndex = 0;
this.dosyalar.UseCompatibleStateImageBehavior = false;
this.dosyalar.View = System.Windows.Forms.View.List;
//
// Form1
//
this.AutoScaleBaseSize = new System.Drawing.Size(5, 15);
this.ClientSize = new System.Drawing.Size(423, 293);
this.Controls.Add(this.lbldosyapath);
this.Controls.Add(this.dosyalar);
this.Name = "Form1";
this.Text = "ListView";
this.ResumeLayout(false);
}
private void CreateHeadersAndFillListView()
{
ColumnHeader sutunBaslik;
sutunBaslik = new ColumnHeader();
sutunBaslik.Text = "Dosya Adı";
this.dosyalar.Columns.Add(sutunBaslik);
sutunBaslik = new ColumnHeader();
sutunBaslik.Text = "Boyut";
this.dosyalar.Columns.Add(sutunBaslik);
sutunBaslik = new ColumnHeader();
sutunBaslik.Text = "En Son Erişim Tarihi";
this.dosyalar.Columns.Add(sutunBaslik);
}
private void PaintListView(string root)
{
try
{
ListViewItem lvi;
ListViewItem.ListViewSubItem lvsi;
this.lbldosyapath.Text = root + " (Dosya adına çift tıkla...)";
System.IO.DirectoryInfo dir = new System.IO.DirectoryInfo(root);
DirectoryInfo[] dirs = dir.GetDirectories();
FileInfo[] files = dir.GetFiles();
this.dosyalar.Items.Clear();
this.dosyalar.BeginUpdate();
foreach (System.IO.DirectoryInfo di in dirs)
{
lvi = new ListViewItem();
lvi.Text = di.Name;
//lvi.ImageIndex = 0;
lvi.Tag = di.FullName;
lvsi = new ListViewItem.ListViewSubItem();
lvsi.Text = "sub item";
lvi.SubItems.Add(lvsi);
lvsi = new ListViewItem.ListViewSubItem();
lvsi.Text = di.LastAccessTime.ToString();
lvi.SubItems.Add(lvsi);
this.dosyalar.Items.Add(lvi);
}
this.dosyalar.EndUpdate();
}
catch (System.Exception err)
{
MessageBox.Show("Hata: " + err.Message);
}
this.dosyalar.View = View.Details;
}
private void lwFilesAndFolders_ItemActivate(object sender, System.EventArgs e)
{
System.Windows.Forms.ListView lw = (System.Windows.Forms.ListView)sender;
string filename = lw.SelectedItems[0].Tag.ToString();
Console.WriteLine(filename);
}
}
}
//Bir sonraki makalede görüşmek üzere. Bahadır ŞAHİN