【中階級】-檔案讀寫

閱讀時間約 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的使用囉~
為什麼會看到廣告
avatar-img
21會員
43內容數
Hello~ Welcome to my blog~❤ 這邊會分享我在程式這條道路中的學習與成長, 過程中從而了解自己的不足,再學習。 希望透過分享的方式, 也讓正在學習程式的夥伴們一起學習, 我們一起加油吧~ 「彼此都會成為彼此之間的影響力」(´,,•ω•,,)♡ ❣
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
橙果杏的沙龍 的其他內容
接續上一篇分享跟執行緒相關的內容包含:安全鎖(lock)、號誌(semaphore)、前景與背景執行緒介紹等等。 二、安全鎖(lock)   安全鎖目的是當多個執行緒要執行同一函式時,為了避免同時進行或是影響到變數的值,因此才會有這個機制來保護。「鎖的是區塊」而非資源哦!什麼意思?來看看就
  當我們要使用執行緒的時候,就要引用System.Threading的類別庫,程式才可以使用唷!這篇內容先說明:建立與啟用執行緒、跨執行緒控制UI介面、等待或暫停時間執行緒、共享資源的部分。
  在說執行緒(Thread)時就要先知道什麼是程式(Program)、程序(Process),才能了解什麼是執行緒(Thread),因為它們間都有著神秘的關係與關聯,再更深入一點就又會有多程序(muti-Process)、多執行緒(muti-Thread),我們就先一一說明好了,了解它們後再使用時
  程式在執行的過程中難免會遇到意外的狀況發生,這時該怎麼辦呢?現實生活中我們可能就會去保保險,那麼程式怎麼辦?有一個例外處理try...catch可以幫我們解決這個問題,甚至還可以使用throw可以丟出例外,例外處理部分是可以透過程式的規劃來了解是哪邊出問題的哦!怎麼說呢?我們來看一下例子:
  本篇要分享的是事件(Event)與委派(Delegate),這兩者時常都會綁再一起,怎麼說呢?我們先來各別了解什麼是Event?什麼是Delegate?他們都在做些什麼事呢? 一、事件(Event)   事件(Event)是事情的發生、狀態的發生或改變,也可以說是對於這件事去「做通知」這個動作。
  本篇要分享的內容包含Enum、Dictionary、Stack、Queue、IComparable<T>、IComparer<T>、CompareTo、Compare等等相關內容。它們與Array和List有些類似,都是資料集合存取或資料其他相關處理的部分,我們就來看一看它們是何方神聖吧~
接續上一篇分享跟執行緒相關的內容包含:安全鎖(lock)、號誌(semaphore)、前景與背景執行緒介紹等等。 二、安全鎖(lock)   安全鎖目的是當多個執行緒要執行同一函式時,為了避免同時進行或是影響到變數的值,因此才會有這個機制來保護。「鎖的是區塊」而非資源哦!什麼意思?來看看就
  當我們要使用執行緒的時候,就要引用System.Threading的類別庫,程式才可以使用唷!這篇內容先說明:建立與啟用執行緒、跨執行緒控制UI介面、等待或暫停時間執行緒、共享資源的部分。
  在說執行緒(Thread)時就要先知道什麼是程式(Program)、程序(Process),才能了解什麼是執行緒(Thread),因為它們間都有著神秘的關係與關聯,再更深入一點就又會有多程序(muti-Process)、多執行緒(muti-Thread),我們就先一一說明好了,了解它們後再使用時
  程式在執行的過程中難免會遇到意外的狀況發生,這時該怎麼辦呢?現實生活中我們可能就會去保保險,那麼程式怎麼辦?有一個例外處理try...catch可以幫我們解決這個問題,甚至還可以使用throw可以丟出例外,例外處理部分是可以透過程式的規劃來了解是哪邊出問題的哦!怎麼說呢?我們來看一下例子:
  本篇要分享的是事件(Event)與委派(Delegate),這兩者時常都會綁再一起,怎麼說呢?我們先來各別了解什麼是Event?什麼是Delegate?他們都在做些什麼事呢? 一、事件(Event)   事件(Event)是事情的發生、狀態的發生或改變,也可以說是對於這件事去「做通知」這個動作。
  本篇要分享的內容包含Enum、Dictionary、Stack、Queue、IComparable<T>、IComparer<T>、CompareTo、Compare等等相關內容。它們與Array和List有些類似,都是資料集合存取或資料其他相關處理的部分,我們就來看一看它們是何方神聖吧~
你可能也想看
Google News 追蹤
Thumbnail
本文介紹瞭如何使用BAT腳本和CMD指令來自動執行檔案和空目錄的刪除作業。通過設定各種參數和指令,可以快速、有效地執行定期刪除作業,節省硬體空間並提升工作效率。
Thumbnail
本文詳細介紹Windows cmd指令的應用,並提供了例說明及追加說明,用戶可以學習如何使用cmd指令對檔案進行處理、選取所需的內容,以及擴展運用到其他類型的檔案,最後還介紹了cmd設計完成後的應用和自動化執行方式。
Thumbnail
Visual Basic for Applications(VBA)是一種功能強大的程式語言,廣泛用於自動化 Microsoft Office 應用程式中的重複性任務。在這篇教學文章中,我們將介紹如何使用 VBA 來新增、刪除和移動檔案。
Thumbnail
在讀取檔案時,最怕路徑的問題,常常會有路徑錯誤造成的異常報錯。 為了避免諸如此類的問題發生,明白程式的當前目錄與檔案的路徑是很重要的。 可以利用os 模組是 Python 中的一個標準庫,提供了許多與操作系統的功能。 以下是一些常用的 os 模組基本操作及其範例: 1. os.getcwd
Thumbnail
工具功能 (1) 彈性任意查詢檔案,如對來源目錄設定,檔案修改日期 設定,檔名特定字串或副檔名設定後,自動查出明細,並可展開至各階子目錄處理     (2) 依查詢後結果,可產出 LIST ,提供查詢結果之確認,再依此對檔案作複 (3) 可對檔案作移動,複製至別處,刪除處理,使電腦可騰出硬碟空間
底下為操作流程: 打開「磁碟工具程式」 點選「檔案」 點選「新增映像檔」 點選「來自檔案夾的映像檔」 選擇要製作成「dmg」的物件 選擇要存放「dmg」的資料夾與設定(檔名、加密與映像檔格式)
Thumbnail
INI 檔案是一種配置檔案格式,常用於保存設定資料和組態資訊。 它使用簡單的鍵值對結構來組織資料,通常用於程式、應用程式或操作系統中的配置和初始化設定。 INI 檔案每個鍵值對包含一個名稱(鍵)和對應的值。 基本的檔案格式如下: [Section1] Key1 = Value1 Key2 =
Thumbnail
影像和檔案的處理技術已成為設計師的基本功。從精緻的插圖到複雜的版面設計,每一步操作都蘊含著無限的可能性與挑戰。本文將帶領您深入了解如何精準控制影像置入過程中的細節,從而達到既定的設計目標。 精確控制影像置入的技巧 當我們談論將影像或檔案置入Adobe Illustrator或InDesign時,
Thumbnail
本篇文章介紹了路徑的概念和兩種不同的路徑運用。這些知識對於網頁開發非常重要,能夠幫助網站開發者更好地管理資源文件的位置。文章通過實際例子和相對路徑的範例來解釋這些概念。希望通過這篇文章,讀者能夠清楚地瞭解路徑的概念,並在日後的開發中能夠靈活運用。
Thumbnail
題目敘述 題目會給我們一組定義好的界面和需求,要求我們設計一個資料結構,可以滿足平均O(1)的插入元素、刪除元素、隨機取得元素的操作。 RandomizedSet() 類別建構子 bool insert(int val) 插入元素的function界面 bool remove(int val
Thumbnail
本文介紹瞭如何使用BAT腳本和CMD指令來自動執行檔案和空目錄的刪除作業。通過設定各種參數和指令,可以快速、有效地執行定期刪除作業,節省硬體空間並提升工作效率。
Thumbnail
本文詳細介紹Windows cmd指令的應用,並提供了例說明及追加說明,用戶可以學習如何使用cmd指令對檔案進行處理、選取所需的內容,以及擴展運用到其他類型的檔案,最後還介紹了cmd設計完成後的應用和自動化執行方式。
Thumbnail
Visual Basic for Applications(VBA)是一種功能強大的程式語言,廣泛用於自動化 Microsoft Office 應用程式中的重複性任務。在這篇教學文章中,我們將介紹如何使用 VBA 來新增、刪除和移動檔案。
Thumbnail
在讀取檔案時,最怕路徑的問題,常常會有路徑錯誤造成的異常報錯。 為了避免諸如此類的問題發生,明白程式的當前目錄與檔案的路徑是很重要的。 可以利用os 模組是 Python 中的一個標準庫,提供了許多與操作系統的功能。 以下是一些常用的 os 模組基本操作及其範例: 1. os.getcwd
Thumbnail
工具功能 (1) 彈性任意查詢檔案,如對來源目錄設定,檔案修改日期 設定,檔名特定字串或副檔名設定後,自動查出明細,並可展開至各階子目錄處理     (2) 依查詢後結果,可產出 LIST ,提供查詢結果之確認,再依此對檔案作複 (3) 可對檔案作移動,複製至別處,刪除處理,使電腦可騰出硬碟空間
底下為操作流程: 打開「磁碟工具程式」 點選「檔案」 點選「新增映像檔」 點選「來自檔案夾的映像檔」 選擇要製作成「dmg」的物件 選擇要存放「dmg」的資料夾與設定(檔名、加密與映像檔格式)
Thumbnail
INI 檔案是一種配置檔案格式,常用於保存設定資料和組態資訊。 它使用簡單的鍵值對結構來組織資料,通常用於程式、應用程式或操作系統中的配置和初始化設定。 INI 檔案每個鍵值對包含一個名稱(鍵)和對應的值。 基本的檔案格式如下: [Section1] Key1 = Value1 Key2 =
Thumbnail
影像和檔案的處理技術已成為設計師的基本功。從精緻的插圖到複雜的版面設計,每一步操作都蘊含著無限的可能性與挑戰。本文將帶領您深入了解如何精準控制影像置入過程中的細節,從而達到既定的設計目標。 精確控制影像置入的技巧 當我們談論將影像或檔案置入Adobe Illustrator或InDesign時,
Thumbnail
本篇文章介紹了路徑的概念和兩種不同的路徑運用。這些知識對於網頁開發非常重要,能夠幫助網站開發者更好地管理資源文件的位置。文章通過實際例子和相對路徑的範例來解釋這些概念。希望通過這篇文章,讀者能夠清楚地瞭解路徑的概念,並在日後的開發中能夠靈活運用。
Thumbnail
題目敘述 題目會給我們一組定義好的界面和需求,要求我們設計一個資料結構,可以滿足平均O(1)的插入元素、刪除元素、隨機取得元素的操作。 RandomizedSet() 類別建構子 bool insert(int val) 插入元素的function界面 bool remove(int val