
C#:
using System;
using System.IO;
using System.Runtime.InteropServices;
using System.Windows.Forms;
namespace ListView
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
listView1.View = View.Details;
listView1.GridLines = true;
listView1.CheckBoxes = true;
listView1.Columns.Add("Имя", -2, HorizontalAlignment.Left);
listView1.Columns.Add("Размер", -2, HorizontalAlignment.Left);
listView1.Columns.Add("Тип", -2, HorizontalAlignment.Left);
}
private void btnBrowse_Click(object sender, EventArgs e)
{
FolderBrowserDialog fbd = new FolderBrowserDialog();
if (fbd.ShowDialog() == DialogResult.OK)
{
listView1.Items.Clear();
foreach (string file in Directory.GetFiles(fbd.SelectedPath))
{
ListViewItem item1 = new ListViewItem(Path.GetFileName(file));
item1.SubItems.Add((Math.Round(new FileInfo(file).Length / 1024.0, 2)).ToString());
Win32API.SHFILEINFO info = new Win32API.SHFILEINFO();
uint dwFileAttributes = Win32API.FILE_ATTRIBUTE.FILE_ATTRIBUTE_NORMAL;
uint uFlags = (uint)(Win32API.SHGFI.SHGFI_TYPENAME | Win32API.SHGFI.SHGFI_USEFILEATTRIBUTES);
Win32API.SHGetFileInfo(file, dwFileAttributes, ref info, (uint)Marshal.SizeOf(info), uFlags);
item1.SubItems.Add(info.szTypeName);
item1.Checked = true;
listView1.Items.Add(item1);
}
for (int i = 0; i < listView1.Columns.Count; i++ )
listView1.AutoResizeColumn(i, ColumnHeaderAutoResizeStyle.ColumnContent);
}
}
}
}