2017-10-12 91 views
1

使用我不能算一個目錄中的文件數量的DirectoryInfo的FileInfoC#文件信息

我曾嘗試沒有成功這個代碼,因爲我沒有錯誤,但可以」 t在gridview中顯示。

我的代碼如下。

你能幫我嗎?

預先感謝您的任何幫助,真的很感激。

public DataTable getAllFiles() 
{ 
    DataTable dt = new DataTable(); 

    sql = @String.Format(" SELECT * FROM doTable ;"); 

    using (OdbcConnection cn = 
     new OdbcConnection(ConfigurationManager.ConnectionStrings["ConnMySQL"].ConnectionString)) 
    { 
     using (OdbcCommand cmd = 
      new OdbcCommand(sql, cn)) 
     { 
      try 
      { 
       cmd.Connection.Open(); 

       using (OdbcDataReader reader = cmd.ExecuteReader()) 
       { 
        if (reader.HasRows) 
        { 
         dt.Columns.Add("Nr of Files in directory"); 

         while (reader.Read()) 
         { 
          FilePath = Server.MapPath("/aspnet/" + reader["sFolder"].ToString().Replace('/', '\\')); 

          Response.Write(FilePath); 

          DirectoryInfo directory = new DirectoryInfo(@FilePath); 
          DirectoryInfo[] subDirectories = directory.GetDirectories(); 
          FileInfo[] files = directory.GetFiles(); 

          foreach (DirectoryInfo dirInfo in subDirectories) 
          { 
           int nrFiles = Directory.EnumerateFiles(dirInfo.FullName, "*.*", SearchOption.AllDirectories).Count(); 
           Response.Write(nrFiles.ToString() + "<br />"); 
           //Here the output is correct// 

           foreach (FileInfo f in files) 
           { 
            DataRow dr = dt.NewRow(); 
            dr[0] = nrFiles.ToString(); 
           } 

           gvDownload.DataSource = subDirectories; 
           gvDownload.DataBind(); 
          } 
         } 
        } 
       } 
      } 
      catch (Exception ex) 
      { 
       throw new ApplicationException("operation failed!", ex); 
      } 
      finally 
      { 
       cmd.Connection.Close(); 
      } 
     } 
    } 
    return dt; 
} 

#Edit 01

enter image description here

我需要顯示在GridView控件上子目錄的NR文件,現在是空的:

enter image description here

+0

你能解釋一下你正在嘗試做什麼? – alexay68

+0

@ alexay68謝謝你的回覆。我嘗試在我的服務器上的一個目錄中的gridview文件夾,子文件夾和文件中顯示。在DB中,我記住了列sFolder這個字符串控制/ Imp/foo –

回答

0

files包含directory文件 - nrFilesdirectory子目錄的文件數量 - 你可能希望從你的子目錄當前,而不是從it's父文件夾重複使用files重新查詢文件

+0

感謝您的回覆,請參閱**#編輯01 **在我的第一個問題中 –

+0

1.您是 - 在子目錄的foreach中 - 重新綁定子目錄一遍又一遍 - 將其移出循環。 2.您填寫本地DataTable dt,它與您綁定的數據源沒有連接。 3.您可能需要一些valueconverter將綁定的子目錄轉換爲可顯示的內容 - 沒有足夠的代碼來準確知道需要什麼 - 這是另一個問題和難題。 –

+0

謝謝,我也可以改變系統和代碼來實現目標。你有什麼建議嗎? –