在 Windows Forms 應用程式中,常見的需求是讓使用者一次選取多張圖片,並在 ListView 控制項中以明細檢視呈現檔案名稱、完整路徑與副檔名。本文提供一個精簡且實用的完整範例,示範如何搭配 OpenFileDialog 與 ListView 達成此功能。
Details,才能顯示多欄資料。true,允許使用者按住 Ctrl/Shift 多選檔案。if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
listView1.Items.Clear(); // 先清空舊資料
string[] files = openFileDialog1.FileNames; // 取得所有選取的檔案完整路徑
string[] fileInfo = new string[3]; // 暫存:檔名、路徑、類型
foreach (string fullPath in files)
{
// 取得純檔名(含副檔名)
string fileName = Path.GetFileName(fullPath);
// 取得副檔名(不含點號)
string fileType = Path.GetExtension(fileName).TrimStart('.');
fileInfo[0] = fileName;
fileInfo[1] = fullPath;
fileInfo[2] = fileType;
ListViewItem lvi = new ListViewItem(fileInfo);
listView1.Items.Add(lvi);
}
}
ShowDialog() 開啟對話框,使用者確認後進入 if 區塊。FileNames 屬性回傳字串陣列,包含所有被選取檔案的完整路徑。Path.GetFileName 與 Path.GetExtension 取代手動 Substring,程式碼更易讀且跨平台相容性較佳。ListViewItem,一次加入 ListView。ListView.LargeImageList 搭配 ImageList,並在迴圈中載入縮圖。BackgroundWorker 或 async/await 避免 UI 凍結。透過 OpenFileDialog.Multiselect 與 ListView.Details 的組合,僅需十幾行程式碼即可完成多檔案選取與資訊顯示,適合作為檔案匯入、批次處理功能的起手式。