1. 程式人生 > 程式設計 >C#獲取某路徑資料夾中全部圖片或其它指定格式的檔名的例項方法

C#獲取某路徑資料夾中全部圖片或其它指定格式的檔名的例項方法

1、編寫獲取檔名(全路徑)子函式

/////param
///path:資料夾路徑
///suffix:字尾格式, 如bmp,txt
///fileList:檔名存放
///isSubcatalog:true遍歷子資料夾,否則不遍歷
void getFiles(string path,string suffix, ref List<string> fileList, bool isSubcatalog)
{
  string filename;
  DirectoryInfo dir = new DirectoryInfo(path);
  FileInfo[] file = dir.GetFiles();
  //DirectoryInfo[] dii = dir.GetDirectories();//如需遍歷子資料夾時需要使用
  foreach (FileInfo f in file)
  {
    filename = f.FullName;
    if (filename.EndsWith(suffix))//判斷檔案字尾,並獲取指定格式的檔案全路徑增添至fileList
    {
      fileList.Add(filename);
    }
  }
  獲取子資料夾內的檔案列表,遞迴遍歷 
  if(isSubcatalog)
  {
    foreach (DirectoryInfo d in dii)
    {
      getFiles(d.FullName,fileList);
    }
  }

  return;
}

2、在介面中放置一個button控制元件,單擊按鈕時彈出資料夾路徑選擇視窗,並呼叫getFiles子函式:

List<string> imageFiles = new List<string>();
private void btnSelectPath_Click(object sender,EventArgs e)
{
  FolderBrowserDialog dialog = new FolderBrowserDialog();
  dialog.Description = "Please choose image path.";
  DialogResult result = dialog.ShowDialog();
  if (result == System.Windows.Forms.DialogResult.Cancel)
  {
    return;
  }
  string folderPath = dialog.SelectedPath.Trim();
  DirectoryInfo theFolder = new DirectoryInfo(folderPath);
  if (theFolder.Exists)
  {
    getFiles(folderPath,"bmp",ref imageFiles,false);
    return; 
  }
}

以上例項程式碼大家可以本機測試下,感謝大家的學習和對我們的支援。