【中階級】-檔案讀寫

2023/07/08閱讀時間約 7 分鐘
  當我們在使用介面的時候有些狀況需要開啟檔案、讀取檔案或是存取檔案,像是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可以讓圖片在框框內顯示適當大小的圖,就可以完整顯示圖片了
更改pictureBox屬性
更改pictureBox屬性執行結果

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顯示圖片
開啟檔案執行結果-1
開啟檔案執行結果-2

3.存取圖片

存圖程式
說明:
1.一開始也是先初始化、把想設定的屬性設定好
2.設定檔名(看自己想要設定的名稱為何)
*這邊的file1_Name是在剛剛開啟檔案時去取得原圖檔名,由於這邊會使用到,因此要記得將此變數要宣告在全域變數的地方喔!

3.要先判斷此位址在不在,不在就先建立好
4.最後在存圖(這邊為了方便我們知道是否存取,可以看下面這張圖,用MessageBox.Show來顯示)
存圖程式(存圖顯示存取成功狀況)
存圖執行結果-1
程式中執行完畢後,自己也可以到專案下查看是否真的有存到,代表程式有沒有寫成功。
存圖執行結果-2

4.刪除圖片

這邊只要File.Delete(路徑); 這樣就可以了
刪圖程式11
刪圖程式執行結果-1
刪圖程式執行結果-2

二、文字檔案建立與寫入、讀取

1.文字檔案建立與寫入

  可以先在專案底下先建立一個存文字檔的資料夾,接著介面上可以拉三個按鈕和一個textBox,然而textBox更改屬性可以拉動它的bar,為了之後讀取檔案時文字很多還可以靠捲動來看文字。tt
textBox屬性更改
建立文字檔程式
存檔處先建立資料夾
建立文字檔執行結果-1
建立文字檔執行結果-2
說明:
1.程式內有註解可以對照著看
2.當處理好建立或寫入檔案時,可以再多加MessageBox.show()訊息來提醒我們程式已經完成了(這邊我沒有放進去,但要做這件事的時候要補進去會比較好哦!)
3.可以看到執行完後它會新增文字檔並且將要寫入的內容全部寫進去

2.文字檔案讀取

讀取檔案程式
讀取檔案程式執行結果

三、建立INI檔

.什麼是INI檔案檔?

  在很多大程式當中會有一些設定檔,那這個設定檔就會使用到ini檔來做存取相關內容,那麼這邊就來分享一下INI要怎麼使用吧~

Step1:先建立一個class類別,接著寫入程式(看下面幾張圖)

(類別)INI檔建立-1
(類別)INI檔建立-2
(類別)INI檔建立-程式引用
(類別)INI檔建立程式

Step2:在主程式中,先在全域變數中設定 ini 存取檔案位置。先說寫入的狀況:

(主程式)INI檔程式-1
(主程式)INI檔程式-2
INI檔程式執行結果
說明:
1.這邊寫入有三個參數,也就是引用我們一開始建立的Class類別來做使用,這三個參數我們就當它為標題、小標題、內容
2.第185-187行:當我們的標題、小標題為一樣時,只有內容值不一樣,那麼執行結果是會被覆蓋過去的,最後取得的值就會是最後給予的值
3.第189-190行:當只有標題一樣時,小標題、內容值不一樣,那麼執行結果是不會被覆蓋過去的。
總結:
也就是說當標題、小標題一樣時,後者的內容值就是當參數做設定,所以是會被覆蓋過去的。倘若小標題不一樣時,就會去新增新的參數。因此這樣的規則下,在程式中才會時常使用這種設定檔去設定相關參數。

Step3:讀取INI檔

讀取INI檔程式
讀取INI檔程式執行結果
說明:
1.讀取ini檔時一樣也是寫入三個參數,那這邊就會去讀取INI檔找到相對應的標題、小標題去取出內容值,假若找不到相對應的就會顯示出default值。
檔案讀寫部分就分享到這邊,下次會說Visual Studio的內建SQL的使用囉~
為什麼會看到廣告
橙果杏
橙果杏
Hello~ Welcome to my blog~❤ 這邊會分享我在程式這條道路中的學習與成長, 過程中從而了解自己的不足,再學習。 希望透過分享的方式, 也讓正在學習程式的夥伴們一起學習, 我們一起加油吧~ 「彼此都會成為彼此之間的影響力」(´,,•ω•,,)♡ ❣
留言0
查看全部
發表第一個留言支持創作者!