_在窗體中打開文件

        最近在做一個項目,需要打開在軟件中點擊按鈕,從而打開一個文件,新手學習C#,從此把之後總結的C#的點點知識都總結起來,雖然不是主要做C#上位機的開發,但是多學點東西總是沒錯,往後會不定期一點點記錄自己所學到的知識,希望以後的自己慢慢強大起來。

先來說說現在做的這個界面,如下圖所示:


這個界面中,點擊【打開】按鈕可以選擇要打開的文件,如下圖所示:

這裏涉及一個控件的知識了,就是OpenFileDialog。

選中打開的文件後,實現的功能是把選擇的文件的名字填入【文件名】中:


實現的代碼如下:

public void openfile(int n)
        {
            OpenFileDialog openfile = new OpenFileDialog();


            openfile.Filter = "*.cs | *.cs";//設置文件後綴
            if (openfile.ShowDialog() == DialogResult.OK)
            {
                string filename = openfile.FileName;
                dic1.Add(n, filename);
                fileArr[n].Text = filename.Substring(filename.LastIndexOf("\\") + 1, filename.LastIndexOf(".") - (filename.LastIndexOf("\\") + 1));
            }           
        }


頁面中的【NO】按鈕是用來打開文件的,打開的文件是readonly權限,是不可編寫的,點擊【編輯】按鈕就可以打開文件並且編輯,實現代碼如下:

public void readfile(int btNumber, string mode)//點擊【NO】按鈕,以只讀發方式打開文件
        {
            int key = Convert.ToInt16(numArr[btNumber].Text) - 1;
            foreach (KeyValuePair<int, string> kv in dic1)
            {
                if (kv.Key == key)
                {
                    System.IO.FileInfo f = new System.IO.FileInfo(kv.Value);
                    if (mode == "ReadOnly")
                    {
                        f.Attributes = System.IO.FileAttributes.ReadOnly;
                    }                   
                    System.Diagnostics.Process csProcess = System.Diagnostics.Process.Start(kv.Value);
                }
            }  
        }


public void readfile(int btNumber)//點擊【編輯】按鈕,以可讀可寫發方式打開文件
        {
            int key = Convert.ToInt16(numArr[btNumber].Text) - 1;
            foreach (KeyValuePair<int, string> kv in dic1)
            {
                if (kv.Key == key)
                {
                    System.IO.FileInfo f = new System.IO.FileInfo(kv.Value);
                    f.Attributes = System.IO.FileAttributes.Normal;
                    System.Diagnostics.Process csProcess = System.Diagnostics.Process.Start(kv.Value);
                }
            }
        }


       在C#窗體中使用代碼實現文件的打開,用的是進程的思想,即Windows中每個軟件都是一個進程,我們平時在電腦中自己打開一個txt文件就是打開一個進程,在代碼中同樣可以實現打開文件的功能。

關鍵語句就是:

System.Diagnostics.Process csProcess = System.Diagnostics.Process.Start(kv.Value);

這裏的kv.Value是用鍵值對把文件名和【NO】中的序號對應起來,方便做一些讀寫操作。


在沒有設置文件的權限時,文件是不可改變的,所以以上代碼中,如果不實現

 f.Attributes = System.IO.FileAttributes.ReadOnly;

文件打開後也是不能更改的,大家可以試試。


爲了使文件能夠修改,要設置成 f.Attributes = System.IO.FileAttributes.Normal;


設置文件的屬性主要用到了FileInfo類的Attributes屬性。



                                                                                                                                                                   Kyrie Irving___全.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章