首頁 > 軟體

C#開發Winform控制元件之開啟檔案對話方塊OpenFileDialog類

2022-02-25 19:00:32

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+"rn");
        }
    }
}

4、生成exe檔案測試

5、點選開啟檔案按鈕,開啟對話方塊。預設的目錄是exe檔案所在的目錄:

6、在開啟檔案的型別中是我們設定的4和型別,預設選中的是第2個音訊檔型別:

7、選中要開啟的檔案後,程式執行效果:

到此這篇關於C#開發Winform控制元件之開啟檔案對話方塊OpenFileDialog類的文章就介紹到這了。希望對大家的學習有所幫助,也希望大家多多支援it145.com。


IT145.com E-mail:sddin#qq.com