簡體   English   中英

c#recursion文件夾和文件目錄

[英]c# recursion folders and files directory

我正在嘗試檢索目錄中所有文件夾中的所有文件。

但結果很隨意..

我認為foreach錯了..

我不明白為什么?

因為在所有文件夾中,我們檢查所有文件,然后顯示所有文件的鏈接按鈕。 但實際上它顯示了很多文件夾,兩次。

 var DI = new DirectoryInfo("C://inetpub//wwwroot//ClientPortal//Files//")
              .GetDirectories("*.*", System.IO.SearchOption.AllDirectories);

 foreach (System.IO.DirectoryInfo D1 in DI)
 {
     System.IO.FileInfo[] fiArr = D1.GetFiles();

     foreach (System.IO.FileInfo file in fiArr)
     {
         LinkButton lktest = new LinkButton();
         lktest.Text = D1.Name;
         form1.Controls.Add(lktest);
         form1.Controls.Add(new LiteralControl("<br>"));
     }
 }

有人能幫我嗎 ?

非常感謝 !

顯示所有文件的鏈接按鈕

在這里你創建鏈接按鈕,其名稱設置為目錄,當它聽起來像你想要的文件(即file.Name而不是D1.Name)

lktest.Text = D1.Name;

這有幫助嗎?

http://www.dreamincode.net/code/snippet1669.htm

public void GetDirStructure(string path)
{
    try
    {
        DirectoryInfo dir = new DirectoryInfo(path);
        DirectoryInfo[] subDirs = dir.GetDirectories();
        FileInfo[] files = dir.GetFiles();
        foreach(FileInfo fi in files)
        {
            Console.WriteLine(fi.FullName.ToString());
        }

        if (subDirs != null)
        {
            foreach (DirectoryInfo sd in subDirs)
            {
                GetDirStructure(path + @"\\" + sd.Name);
            }
        }
    }
    catch(Exception ex)
    {
        Console.WriteLine(ex.Message.ToString());
    }
}

第一行代碼似乎是罪魁禍首:

System.IO.DirectoryInfo[] DI = new System.IO.DirectoryInfo("C://inetpub//wwwroot//ClientPortal//Files//").GetDirectories("*.*", System.IO.SearchOption.AllDirectories);

嘗試使用以下內容:

DirectoryInfo[] DI = new DirectoryInfo("C://inetpub//wwwroot//ClientPortal//File//").GetDirectories();

暫無
暫無

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

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