Вывод списка файлов из директории в ListView

mexan

Администратор
Сообщения
764
Реакции
110
Screenshot_1.png

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);
            }
        }
    }
}
 

Вложения

Верх