2014-01-09 2 views
2

폴더가 있습니다. 폴더에는 폴더가 여러 개 있으며 각 폴더에는 이미지가 있습니다. 이처럼 :FolderBrowser 중첩 폴더

Main Folder>Subfolder 1>Picture 1 

Main Folder>Subfolder 2>Picture 2 

모든 하위 폴더의 사진 (등 사진 1, 사진 2)이 내가 FolderBrowserDialog를 사용하여 기본 폴더를 선택하고 어떻게 든 표시 찾고 있어요

인가 등 가능하다면 FolderBrowserDialog? 만약 그렇다면 어떻게 할 수 있습니까? 감사합니다

답변

1
Directory.GetFiles("path", "*.jpeg", SearchOption.AllDirectories); 
+0

나는 지금 시도해보고 작동하는지 알려 줄 것입니다. 감사! –

+1

당신이 원하지 않는 : http://msdn.microsoft.com/en-us/library/System.IO.Directory.GetFiles(v=vs.110).aspx. 제공 한 링크는 .NET Micro Framework 용입니다. – Abbas

2

예, 가능하지만, FolderBrowserDialog은 해결책의 일부에 지나지 않습니다.

using (var fbd = new FolderBrowserDialog()) 
{ 
    if (fbd.ShowDialog() == DialogResult.OK) 
    { 
     foreach (var file in Directory.GetFiles(fbd.SelectedPath, 
      "*.png", SearchOption.AllDirectories) 
     { 
      // this catches things like *.png1 or *.pngp 
      // not that they'd ever exist; but they may 
      if (Path.GetExtension(file).Length > 4) { continue; } 

      var pictureBox = new PictureBox(); 
      pictureBox.Load(file); 

      // set its location here 

      this.Controls.Add(pictureBox); 
     } 
    } 
} 

이 코드는 png 파일을 검색, 그리고 내가 확장자를 확인하는 이유 때문에 3 문자 확장 검색에 작은 알려진주의의 것을 주목할 필요가 : 그것은 다음과 같이 보일 수

파일 확장명이 정확히 3자인 searchPattern은 3 자 이상의 확장자를 가진 파일을 반환합니다. 여기서 처음 세 문자는 searchPattern에 지정된 파일 확장명과 일치합니다.

0

폴더 브라우저 대화 상자 사용 사용자는 폴더가 아닌 파일 만 선택할 수 있습니다. 따라서 선택한 폴더에있는 이미지 목록을 표시 할 수있는 자체 컨트롤을 가질 수 있습니다.

 FolderBrowserDialog folderBrowserDlg = new FolderBrowserDialog(); 
     DialogResult dlgResult = folderBrowserDlg.ShowDialog(); 
     if (dlgResult.Equals(DialogResult.OK)) 
     { 
      foreach (string file in System.IO.Directory.GetFiles(folderBrowserDlg.SelectedPath, "*.png")) //.png, bmp, etc. 
      { 
       Image image = new Bitmap(file); 
       imageList1.Images.Add(image);     
      } 
     } 

     this.listView1.View = View.LargeIcon; 
     this.imageList1.ImageSize = new Size(32, 32); 
     this.listView1.LargeImageList = this.imageList1; 
     for (int j = 0; j < this.imageList1.Images.Count; j++) 
     { 
      ListViewItem item = new ListViewItem(); 
      item.ImageIndex = j; 
      this.listView1.Items.Add(item); 
     } 

위의 코드는 선택한 폴더에있는 이미지 파일 목록을 가져 와서 목록보기 컨트롤에 추가합니다.

enter image description here