當我們在使用介面的時候有些狀況需要開啟檔案、讀取檔案或是存取檔案,像是Office軟體、3D建模軟體、影片編輯軟體...各式各樣軟體都會有開啟舊檔、開啟新檔、存取檔案這些一般的檔案處理,我們通常就只是點選一下選單或按鍵就可以做這樣的事情了,但是程式中要如何實現這些功能呢?這就是本篇要跟大家分享的內容唷~
一、圖片檔案讀取、開啟、建立、刪除
1.讀取圖片
在介面上拉出一個Button、pictureBox。此Button文字為讀取檔案,pictureBox為顯示圖片。要讓pictureBox顯示圖片可以使用絕對路徑或相對路徑:
//絕對路徑
picFile.Image = Image.FromFile("路徑");
//相對路徑
picFile.Image = Image.FromFile(Application.StartupPath + "路徑");
絕對路徑:就是要將完整路徑寫入
相對路徑:
就是把資料放在你的專案底下,也就是你的專案資料夾中的bin//debug下,讀取的時候就會從這裡讀取,那路徑寫的內容就是檔案名稱和檔名,若有資料夾就再往後增加資料夾的路徑。等下可以看實例。先看絕對路徑位置存放在哪兒呢?
將我們想放的資料放到debug後,就可以使用相對路徑來將它開啟啦~這邊我們有使用資料夾因此再用相對路徑時也要把它寫進去喔!!直接看實例:
說明:
1.絕對路徑就使用24 - 25行
2.相對路徑就使用27行(目前我們使用這一行)
大家可以看到此時圖片並不完整,這下怎麼辦?修改pictureBox屬性找到SizeMode選擇Zoom可以讓圖片在框框內顯示適當大小的圖,就可以完整顯示圖片了
2.開啟圖片
第一步先初始化,接下來就看我們要設定什麼樣的條件在增加進去就好,這邊列出較常會用到的語法:
OpenFileDialog file1 = new OpenFileDialog(); //初始化
【開啟對話框以前的設定】
file1.Title = "選擇一張影像圖"; //設定視窗標題,預設「開啟」
//選擇的檔案類型「|」是隔開用途
file1.Filter = "所有檔案(*.*)|*.*";
file1.Filter = "圖片檔案(*.jpg,*.gif,*.bmp,*.png)|*.jpg;*.gif;*.bmp;*.png";
file1.Filter = "所有檔案(*.*) | *.*|圖片檔案(*.jpg,*.gif,*.bmp,*.png)|*.jpg;*.gif;*.bmp;*.png";
file1.InitialDirectory ="C:\\"; //設定開檔案時初始化目錄
file1.RestoreDirectory = true; //設定是否紀錄上次開檔案的目錄
file1.Multiselect = true; //設定檔案是否多選
【開啟對話框後可以使用的屬性】
string file1path=file1.FileName; //取得選擇該檔案的路徑
string file1_Name = Path.GetFileNameWithoutExtension(A); //擷取檔名
string file1_Name_SubName = Path.GetFileName(file1Path); //檔名+附檔名
string file1_FolderPath = Path.GetDirectoryName(file1Path); //只有目錄資料夾路徑,沒有檔名+附檔名
string file1_RootPath = Path.GetPathRoot(file1Path); //資料根目錄
string file1_Path = Path.GetFullPath(file1Path); //取得完整路徑
這邊實作結果為:
說明:
1.第39行的判斷式,指的就是判斷是否開啟對話框
2.第42行是在文字方塊顯示路徑
3.第44行是使用pictureBox顯示圖片
3.存取圖片
說明:
1.一開始也是先初始化、把想設定的屬性設定好
2.設定檔名(看自己想要設定的名稱為何)
*這邊的file1_Name是在剛剛開啟檔案時去取得原圖檔名,由於這邊會使用到,因此要記得將此變數要宣告在全域變數的地方喔!
3.要先判斷此位址在不在,不在就先建立好
4.最後在存圖(這邊為了方便我們知道是否存取,可以看下面這張圖,用MessageBox.Show來顯示)
程式中執行完畢後,自己也可以到專案下查看是否真的有存到,代表程式有沒有寫成功。
4.刪除圖片
這邊只要File.Delete(路徑); 這樣就可以了
二、文字檔案建立與寫入、讀取
1.文字檔案建立與寫入
可以先在專案底下先建立一個存文字檔的資料夾,接著介面上可以拉三個按鈕和一個textBox,然而textBox更改屬性可以拉動它的bar,為了之後讀取檔案時文字很多還可以靠捲動來看文字。tt
說明:
1.程式內有註解可以對照著看
2.當處理好建立或寫入檔案時,可以再多加MessageBox.show()訊息來提醒我們程式已經完成了(這邊我沒有放進去,但要做這件事的時候要補進去會比較好哦!)
3.可以看到執行完後它會新增文字檔並且將要寫入的內容全部寫進去
2.文字檔案讀取
三、建立INI檔
.什麼是INI檔案檔?
在很多大程式當中會有一些設定檔,那這個設定檔就會使用到ini檔來做存取相關內容,那麼這邊就來分享一下INI要怎麼使用吧~
Step1:先建立一個class類別,接著寫入程式(看下面幾張圖)
Step2:在主程式中,先在全域變數中設定 ini 存取檔案位置。先說寫入的狀況:
說明:
1.這邊寫入有三個參數,也就是引用我們一開始建立的Class類別來做使用,這三個參數我們就當它為標題、小標題、內容
2.第185-187行:當我們的標題、小標題為一樣時,只有內容值不一樣,那麼執行結果是會被覆蓋過去的,最後取得的值就會是最後給予的值。
3.第189-190行:當只有標題一樣時,小標題、內容值不一樣,那麼執行結果是不會被覆蓋過去的。
總結:
也就是說當標題、小標題一樣時,後者的內容值就是當參數做設定,所以是會被覆蓋過去的。倘若小標題不一樣時,就會去新增新的參數。因此這樣的規則下,在程式中才會時常使用這種設定檔去設定相關參數。
Step3:讀取INI檔
說明:
1.讀取ini檔時一樣也是寫入三個參數,那這邊就會去讀取INI檔找到相對應的標題、小標題去取出內容值,假若找不到相對應的就會顯示出default值。
檔案讀寫部分就分享到這邊,下次會說Visual Studio的內建SQL的使用囉~