2012-12-09 2 views
0

DataGridView에 root/parent 파일을 표시하고 싶지만 어떻게해야할지 모르겠다. 하위 폴더에있는 모든 파일을 하나의 루트 폴더에 나열했지만 모든 파일의 부모 폴더가 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

들으. 루프에 있거나 루프에서 벗어난 경우 동일한 부스 방식으로 작동합니다. – anzes

+0

@anzes 물론 각 루프에서'if (i == 0)'을 체크하지 않을 것입니다. –

+0

전체 코드를 복사하지 않았을 것입니다. 모든 행에 추가 할 체크 박스 때문에이 코드가 필요합니다. – anzes