2012-12-09 40 views
0

我想在DataGridView中顯示文件根目錄/父目錄,但我不知道如何。我列出了在一個根文件夾中的子目錄中的所有文件,但我還希望每個文件都有其父文件夾顯示在DataGridView。無論如何從System.IO圖書館獲取這些信息?gridview中的父文件夾名稱

這是我的代碼:

private void Form1_Load(object sender, EventArgs e) 
{ 
    label2.Text = LocationX; 
    s1 = Directory.GetFiles(@LocationX, "#", SearchOption.AllDirectories); 

    for (int i = 0; i <= s1.Length - 1; i++) 
    { 
     if (i == 0) 
     { 
      dt.Columns.Add("Paren Folder Name"); 
      dt.Columns.Add("File_Name"); 
      dt.Columns.Add("Version"); 
      dt.Columns.Add("File_Type"); 
      dt.Columns.Add("File_Size"); 
      dt.Columns.Add("Create_Date"); 
     } 

     FileInfo f = new FileInfo(s1[i]); 
     FileSystemInfo f1 = new FileInfo(s1[i]); 

     dr = dt.NewRow(); 
     dr["Root"] = f1.????????  //is it possible to do show parent folder this way? 
     dr["File_Name"] = f1.Name; 
     dr["File_Type"] = f1.Extension; 
     dr["File_Size"] = (f.Length/1024).ToString(); 
     dr["Create_Date"] = f1.CreationTime.Date.ToString("dd/MM/yyyy"); 
     dt.Rows.Add(dr); 
    } 

    if (dt.Rows.Count > 0) 
    { 
     dataGridView1.DataSource = dt; 
    } 
} 

回答

1

使用FileInfo.Directory獲取文件的目錄名:

dr["Root"] = f.Directory.Name; 

而且移動列創造出循環。我認爲循環只能用於向表中添加數據。


dt.Columns.Add("Paren Folder Name"); 
dt.Columns.Add("File_Name"); 
dt.Columns.Add("Version"); 
dt.Columns.Add("File_Type"); 
dt.Columns.Add("File_Size"); 
dt.Columns.Add("Create_Date"); 

DirectoryInfo directory = new DirectoryInfo(@LocationX); 
foreach(FileInfo file in directory.GetFiles("#", SearchOption.AllDirectories)) 
{ 
    dr = dt.NewRow(); 
    dr["Root"] = file.Directory.Name; 
    dr["File_Name"] = file.Name; 
    dr["File_Type"] = file.Extension; 
    dr["File_Size"] = (file.Length/1024).ToString(); 
    dr["Create_Date"] = file.CreationTime.Date.ToString("dd/MM/yyyy"); 
    dt.Rows.Add(dr); 
} 
+0

THX。如果它在環路中或環路外,它將以相同的展位方式工作。 – anzes

+0

@anzes肯定,但你不會檢查每個循環中的「if(i == 0)」 –

+0

我們沒有複製整個代碼,我需要這個,因爲我在每一行都添加了複選框。 – anzes