這篇文章主要為大家詳細介紹了Winform OpenFileDialog開啟檔案對話方塊 的相關資料,具有一定的參考價值,感興趣的小夥伴們可以參考一下
OpenFileDialog類提供了使用者開啟檔案的功能,它有如下屬性:
屬性
InitialDirectory:設定對話方塊的初始目錄。
Filter:要在對話方塊中顯示的檔案篩選器,例如,"文字檔(*.txt)|*.txt|所有檔案(*.*)||*.*"。
FilterIndex:在對話方塊中選擇的檔案篩選器的索引,如果選第一項就設為1。
RestoreDirectory:控制對話方塊在關閉之前是否恢複目前的目錄。
FileName:第一個在對話方塊中顯示的檔案或最後一個選取的檔案。
Title:將顯示在對話方塊標題列中的名稱。
Multiselect:設定開啟對話方塊可以多選。
1、建立一個Winform表單應用程式,命名為:OpenFileDialogDemo
2、在介面上添加一個按鈕的控制項(用於開啟檔案的視窗),添加日誌輸出的文本控制項(輸出終端使用者開啟的檔案的目錄、檔案名稱和檔案內容)。
3、後台代碼實現:
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.IO;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;namespace OpenFileDialogDemo{ public partial class Form1 : Form { public Form1() { InitializeComponent(); } /// <summary> /// 開啟檔案按鈕單擊事件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btn_OpenFile_Click(object sender, EventArgs e) { //定義一個檔案開啟控制項 OpenFileDialog ofd = new OpenFileDialog(); //設定開啟對話方塊的初始目錄,預設目錄為exe運行檔案所在的路徑 ofd.InitialDirectory = Application.StartupPath; //設定開啟對話方塊的標題 ofd.Title = "請選擇要開啟的檔案"; //設定開啟對話方塊可以多選 ofd.Multiselect = true; //設定對話方塊開啟的檔案類型 ofd.Filter = "文字檔|*.txt|音頻檔案|*.wav|圖片檔案|*.jpg|所有檔案|*.*"; //設定檔案對話方塊當前選定的篩選器的索引 ofd.FilterIndex = 2; //設定對話方塊是否記憶之前開啟的目錄 ofd.RestoreDirectory = true; if (ofd.ShowDialog() == DialogResult.OK) { //擷取使用者選擇的檔案完整路徑 string filePath = ofd.FileName; //擷取對話方塊中所選檔案的檔案名稱和副檔名,檔案名稱不包括路徑 string fileName = ofd.SafeFileName; OutLog("使用者選擇的檔案目錄為:" + filePath); OutLog("使用者選擇的檔案名稱為:"+fileName); OutLog("**************選中檔案的內容**************"); using (FileStream fsRead = new FileStream(filePath, FileMode.OpenOrCreate, FileAccess.Read)) { //定義位元組 byte[] buffer = new byte[1024 * 1024 * 5]; //從流中讀取位元組 int r= fsRead.Read(buffer, 0, buffer.Length); OutLog(Encoding.Default.GetString(buffer,0,r)); } } } /// <summary> /// 輸出日誌 /// </summary> /// <param name="strLog"></param> private void OutLog(string strLog) { //如果日誌資訊長度超過1000行,則自動清空 if (txt_FileInfo.GetLineFromCharIndex(txt_FileInfo.Text.Length) > 1000) { //清空文本 txt_FileInfo.Clear(); } txt_FileInfo.AppendText(DateTime.Now.ToString("HH:mm:ss ")+strLog+"\r\n"); } }}
4、產生exe檔案測試
5、點擊開啟檔案按鈕,開啟對話方塊。預設的目錄是exe檔案所在的目錄:
6、在開啟檔案的類型中是我們設定的4和類型,預設選中的是第2個音頻檔案類型:
7、選中要開啟的檔案後,程式運行效果: