ListView Klasör İçeriklerini Listele - CSharp


Tam yolu verilen bir klasörü verilen ListView nesnesine listelemeye yarayan csharp kodu alternatifidir.

Kod


public static void KlasorIcerikleriniListele(
    ListView lvw, string path,
    IOVs.ListelemeTuru fcls = IOVs.ListelemeTuru.Tumu,
    string columns = "Klasör İçeriği;Yol")
{
    ListViewVs.OnAyar(lvw, columns);

    string[] docs = { };
    switch (fcls)
    {
        case IOVs.ListelemeTuru.Dosya:
            docs = Directory.GetFiles(path);
            break;
        case IOVs.ListelemeTuru.Klasor:
            docs = Directory.GetDirectories(path);
            break;
        case IOVs.ListelemeTuru.Tumu:
            docs = Directory.GetFileSystemEntries(path);
            break;
        default:
            break;
    }

    string[] cl = columns.Split(';');
    foreach (string str in docs)
    {
        str.Trim().Trim(Convert.ToChar(" "));

        lvw.BeginUpdate();

        ListViewItem lvw_item = lvw.Items.Add(Path.GetFileName(str));

        if (cl.Length == 2)
        {
            lvw_item.SubItems.Add(Path.GetDirectoryName(str));
        }
        else if (cl.Length == 3)
        {
            lvw_item.SubItems.Add(Path.GetDirectoryName(str));
            if (File.Exists(str))
            {
                lvw_item.SubItems.Add(Path.GetExtension(str));
            }
            else
            {
                lvw_item.SubItems.Add("");
            }
        }

        lvw.EndUpdate();
    }

    lvw.Columns[0].Text = Path.GetFileName(path);
}

Etiketler
csharp