簡體   English   中英

列出主目錄和子目錄中的文件

[英]Listing files in main directory and subdirectories

我目前有一個代碼,可以掃描給定目錄中的文件夾,並將所有內容列出到列表框中。 但是,我也想掃描每個文件夾下的文件。 我想使用此代碼,因為它輸出類似文件夾結構的樹。 我還需要添加什么代碼才能獲取文件? 謝謝!

private void ScanSelectedFolder(String prefix, String path)
{

    try
    {
        DirectoryInfo di = new DirectoryInfo(path);
        foreach (var dir in new DirectoryInfo(path).GetDirectories("*", SearchOption.TopDirectoryOnly))
        {
            listBox1.Invoke((MethodInvoker)delegate { 
                listBox1.Items.Add(prefix + dir.Name + " (" + dir.Name.Length.ToString() + ")   "); });
                ScanFolder(prefix + "―", dir.FullName);
            }
        }
        catch
        {
            if (!this.IsDisposed)
            {
                listBox1.Invoke((MethodInvoker)delegate { listBox1.Items.Add("Access Denied to : " + path); });
            }
        }
    }
}

輸出:

Radeon-軟件-腎上腺素18.3​​.3-最小設置-180319_web(56)
斌(3)
-本地化(12)
――― cs(2)
――― da_DK(5)
――― de(2)
――― el_GR(5)
――― es_ES(5)
――― fi_FI(5)
――― fr_FR(5)
――― hu_HU(5)
――― it_IT(5)
――― ja(2)
――― ko_KR(5)
――― nl_NL(5)
―――沒有(2)
――― pl(2)
――― pt_BR(5)
――― ru_RU(5)
――― sv_SE(5)
―――第(2)
――― tr_TR(5)
――― zh_CN(5)
――― zh_TW(5)
― Bin64(5)
-本地化(12)
――― cs(2)
――― da_DK(5)
――― de(2)
――― el_GR(5)
――― es_ES(5)
――― fi_FI(5)

像這樣:

DirectoryInfo di = new DirectoryInfo(path);
foreach (var dir in new DirectoryInfo(path).GetDirectories("*", SearchOption.TopDirectoryOnly))
{
    listBox1.Invoke((MethodInvoker)delegate { listBox1.Items.Add(prefix + dir.Name + " (" + dir.Name.Length.ToString() + ")   "); });

    foreach (FileInfo fileInfo in dir.GetFiles())
    {
        listBox1.Invoke((MethodInvoker) delegate { listBox1.Items.Add(prefix + fileInfo.Name); });
    }
    ScanSelectedFolder(prefix + "―", dir.FullName);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM