/*****************************************************/
/*★ Directory List にアイコンを表示 前田 稔 ★*/
/*****************************************************/
using System;
using System.Drawing;
using System.Windows.Forms;
using System.IO;
public class MyForm : Form
{
ListView listView1;
int[] width = { 360, 120, 80 };
string[] head = { "名前", "更新日付", "サイズ" };
string path = "c:\\Test";
ImageList imageListSmall = new ImageList();
public MyForm()
{
InitializeComponent();
Load += new System.EventHandler(MyForm_Load);
Paint += new PaintEventHandler(MyHandler);
}
private void InitializeComponent()
{
this.listView1 = new System.Windows.Forms.ListView();
this.SuspendLayout();
// listView1
this.listView1.Location = new System.Drawing.Point(12, 12);
this.listView1.Name = "listView1";
this.listView1.Size = new System.Drawing.Size(570, 232);
this.listView1.TabIndex = 0;
this.listView1.UseCompatibleStateImageBehavior = false;
// MyForm
this.ClientSize = new System.Drawing.Size(600, 256);
this.Controls.Add(this.listView1);
this.Name = "MyForm";
this.ResumeLayout(false);
}
// ListViewコントロールを初期化します。
private void MyForm_Load(object sender, System.EventArgs e)
{
listView1.FullRowSelect = true;
listView1.GridLines = true;
listView1.View = View.Details;
ColumnHeader[] columnHead = new ColumnHeader[3];
for (int i=0; i<3; i++)
{ columnHead[i] = new ColumnHeader();
columnHead[i].Width = width[i];
columnHead[i].Text = head[i];
}
listView1.Columns.AddRange(columnHead);
}
// ListViewコントロールのデータを更新します。
private void MyHandler(object sender, PaintEventArgs e)
{
listView1.Items.Clear();
imageListSmall.Images.Clear();
imageListSmall.Images.Add(new Bitmap("c:\\data\\test\\folder.ico"));
imageListSmall.ImageSize = new Size(16, 16);
listView1.SmallImageList = imageListSmall;
path= System.Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory);
DirectoryInfo di = new DirectoryInfo(path); //パスを指定
string[] item = new string[3];
//ディレクトリ一覧の取得
DirectoryInfo [] dis = di.GetDirectories("*.*"); //パターンを指定
for(int i=0; i<dis.Length; i++)
{ item[0]= dis[i].FullName;
item[1]= dis[i].LastWriteTime.ToString();
item[2]= "";
listView1.Items.Add(new ListViewItem(item));
listView1.Items[i].ImageIndex = 0;
}
//ファイル一覧の取得
FileInfo [] fis = di.GetFiles("*.*"); //パターンを指定
for( int i=0;i<fis.Length;i++)
{ item[0]= fis[i].FullName;
item[1]= fis[i].LastWriteTime.ToString();
item[2]= fis[i].Length.ToString();
listView1.Items.Add(new ListViewItem(item));
Icon appIcon = System.Drawing.Icon.ExtractAssociatedIcon(fis[i].FullName);
listView1.Items[listView1.Items.Count-1].ImageIndex = imageListSmall.Images.Count;
imageListSmall.Images.Add(appIcon);
}
}
}
class form01
{
public static void Main()
{
MyForm mf = new MyForm();
Application.Run(mf);
}
}
|