【中階級】-檔案讀寫

更新 發佈閱讀 8 分鐘

  當我們在使用介面的時候有些狀況需要開啟檔案、讀取檔案或是存取檔案,像是Office軟體、3D建模軟體、影片編輯軟體...各式各樣軟體都會有開啟舊檔、開啟新檔、存取檔案這些一般的檔案處理,我們通常就只是點選一下選單或按鍵就可以做這樣的事情了,但是程式中要如何實現這些功能呢?這就是本篇要跟大家分享的內容唷~

一、圖片檔案讀取、開啟、建立、刪除

1.讀取圖片

  在介面上拉出一個Button、pictureBox。此Button文字為讀取檔案,pictureBox為顯示圖片。要讓pictureBox顯示圖片可以使用絕對路徑或相對路徑:

//絕對路徑
picFile.Image = Image.FromFile("路徑");
//相對路徑
picFile.Image = Image.FromFile(Application.StartupPath + "路徑");

絕對路徑:就是要將完整路徑寫入

相對路徑:
就是把資料放在你的專案底下,也就是你的專案資料夾中的bin//debug下,讀取的時候就會從這裡讀取,那路徑寫的內容就是檔案名稱和檔名,若有資料夾就再往後增加資料夾的路徑。等下可以看實例。先看絕對路徑位置存放在哪兒呢?

raw-image

將我們想放的資料放到debug後,就可以使用相對路徑來將它開啟啦~這邊我們有使用資料夾因此再用相對路徑時也要把它寫進去喔!!直接看實例:

raw-image
說明:
1.絕對路徑就使用24 - 25行
2.相對路徑就使用27行(目前我們使用這一行)
raw-image
raw-image

大家可以看到此時圖片並不完整,這下怎麼辦?修改pictureBox屬性找到SizeMode選擇Zoom可以讓圖片在框框內顯示適當大小的圖,就可以完整顯示圖片了

raw-image
raw-image

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);  //取得完整路徑

這邊實作結果為:

raw-image
說明:
1.第39行的判斷式,指的就是判斷是否開啟對話框
2.第42行是在文字方塊顯示路徑
3.第44行是使用pictureBox顯示圖片
raw-image
raw-image

3.存取圖片

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

3.要先判斷此位址在不在,不在就先建立好
4.最後在存圖(這邊為了方便我們知道是否存取,可以看下面這張圖,用MessageBox.Show來顯示)
raw-image
raw-image

程式中執行完畢後,自己也可以到專案下查看是否真的有存到,代表程式有沒有寫成功。

raw-image

4.刪除圖片

這邊只要File.Delete(路徑); 這樣就可以了

raw-image
raw-image
raw-image



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

1.文字檔案建立與寫入

  可以先在專案底下先建立一個存文字檔的資料夾,接著介面上可以拉三個按鈕和一個textBox,然而textBox更改屬性可以拉動它的bar,為了之後讀取檔案時文字很多還可以靠捲動來看文字。tt

raw-image
raw-image
raw-image
raw-image
raw-image
說明:
1.程式內有註解可以對照著看
2.當處理好建立或寫入檔案時,可以再多加MessageBox.show()訊息來提醒我們程式已經完成了(這邊我沒有放進去,但要做這件事的時候要補進去會比較好哦!)
3.可以看到執行完後它會新增文字檔並且將要寫入的內容全部寫進去


2.文字檔案讀取

raw-image
raw-image


三、建立INI檔

.什麼是INI檔案檔?

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

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

raw-image
raw-image
raw-image
raw-image

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

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


Step3:讀取INI檔

raw-image
raw-image
說明:
1.讀取ini檔時一樣也是寫入三個參數,那這邊就會去讀取INI檔找到相對應的標題、小標題去取出內容值,假若找不到相對應的就會顯示出default值。


檔案讀寫部分就分享到這邊,下次會說Visual Studio的內建SQL的使用囉~

留言
avatar-img
橙果杏的沙龍
26會員
43內容數
Hello~ Welcome to my blog~❤ 這邊會分享我在程式這條道路中的學習與成長, 過程中從而了解自己的不足,再學習。 希望透過分享的方式, 也讓正在學習程式的夥伴們一起學習, 我們一起加油吧~ 「彼此都會成為彼此之間的影響力」(´,,•ω•,,)♡ ❣
橙果杏的沙龍的其他內容
2024/07/30
一、什麼是WinSocket? 也就是大家常說的WinSock全名為Windows Sockets API (WSA),它會透過TCP/IP通訊協定來做網路的通訊,會用在Windows操作系統上來開發網路應用的API(應用程式介面)   二、WinSocket用在哪裡?   Socket可以
Thumbnail
2024/07/30
一、什麼是WinSocket? 也就是大家常說的WinSock全名為Windows Sockets API (WSA),它會透過TCP/IP通訊協定來做網路的通訊,會用在Windows操作系統上來開發網路應用的API(應用程式介面)   二、WinSocket用在哪裡?   Socket可以
Thumbnail
2024/06/29
當我們架好站、WebService測試完,接著就是測試區域網路連線啦~
Thumbnail
2024/06/29
當我們架好站、WebService測試完,接著就是測試區域網路連線啦~
Thumbnail
2024/06/20
前面已經安裝好IIS後,並且也新建站台了,那麼接下來這篇就會分享如何使用它
Thumbnail
2024/06/20
前面已經安裝好IIS後,並且也新建站台了,那麼接下來這篇就會分享如何使用它
Thumbnail
看更多
你可能也想看
Thumbnail
vocus 慶祝推出 App,舉辦 2026 全站慶。推出精選內容與數位商品折扣,訂單免費與紅包抽獎、新註冊會員專屬活動、Boba Boost 贊助抽紅包,以及全站徵文,並邀請你一起來回顧過去的一年, vocus 與創作者共同留下了哪些精彩創作。
Thumbnail
vocus 慶祝推出 App,舉辦 2026 全站慶。推出精選內容與數位商品折扣,訂單免費與紅包抽獎、新註冊會員專屬活動、Boba Boost 贊助抽紅包,以及全站徵文,並邀請你一起來回顧過去的一年, vocus 與創作者共同留下了哪些精彩創作。
Thumbnail
在讀取檔案時,最怕路徑的問題,常常會有路徑錯誤造成的異常報錯。 為了避免諸如此類的問題發生,明白程式的當前目錄與檔案的路徑是很重要的。 可以利用os 模組是 Python 中的一個標準庫,提供了許多與操作系統的功能。 以下是一些常用的 os 模組基本操作及其範例: 1. os.getcwd
Thumbnail
在讀取檔案時,最怕路徑的問題,常常會有路徑錯誤造成的異常報錯。 為了避免諸如此類的問題發生,明白程式的當前目錄與檔案的路徑是很重要的。 可以利用os 模組是 Python 中的一個標準庫,提供了許多與操作系統的功能。 以下是一些常用的 os 模組基本操作及其範例: 1. os.getcwd
Thumbnail
檔案屬性 filetype(string):回傳參數檔案的種類字串,可能的回傳值有:fifo、char、dir、block、link、file和unknown,如果有錯誤回傳false。 fileatime(string):回傳參數檔案的最後存取時間,單位是UNIX的時間戳記,如果錯誤回傳fal
Thumbnail
檔案屬性 filetype(string):回傳參數檔案的種類字串,可能的回傳值有:fifo、char、dir、block、link、file和unknown,如果有錯誤回傳false。 fileatime(string):回傳參數檔案的最後存取時間,單位是UNIX的時間戳記,如果錯誤回傳fal
Thumbnail
檔案存取 路徑與檔案處理是很常用的功能,他們可以獨立運作,但是常常搭配一起使用,如果你處理的檔案是在當下的目錄,可以不需要使用路徑的功能單獨讀寫檔案,如果是想要做一些資料夾的管理,就需要理解路徑和檔案之間的關係。
Thumbnail
檔案存取 路徑與檔案處理是很常用的功能,他們可以獨立運作,但是常常搭配一起使用,如果你處理的檔案是在當下的目錄,可以不需要使用路徑的功能單獨讀寫檔案,如果是想要做一些資料夾的管理,就需要理解路徑和檔案之間的關係。
Thumbnail
  在寫程式過程中時常會使用檔案的讀取、建立、寫入與刪除相關使用,因此這篇就來分享圖片檔案、文字檔案、INI的設定檔案的相關使用。
Thumbnail
  在寫程式過程中時常會使用檔案的讀取、建立、寫入與刪除相關使用,因此這篇就來分享圖片檔案、文字檔案、INI的設定檔案的相關使用。
Thumbnail
在這篇文章中,我將簡要介紹如何使用Python來處理文件,包括如何打開、讀取、寫入和關閉文件。我也會給出一些範例程式碼和註解,讓你更容易理解和學習。要打開一個文件,我們需要使用open()函數,它接受文件名稱和模式兩個參數。文件名稱是一個字串,表示要訪問的文件的路徑和名稱。
Thumbnail
在這篇文章中,我將簡要介紹如何使用Python來處理文件,包括如何打開、讀取、寫入和關閉文件。我也會給出一些範例程式碼和註解,讓你更容易理解和學習。要打開一個文件,我們需要使用open()函數,它接受文件名稱和模式兩個參數。文件名稱是一個字串,表示要訪問的文件的路徑和名稱。
Thumbnail
到目前為止,我們都還是在附檔名為.py的Python檔案執行程式碼,當程式需要與外部的檔案互動,例如讀取文字、表格、或是影像來做分析,或是把程式執行的結果儲存下來,就需要能夠存取外部的檔案。例如,在上一節中,當貪食蛇遊戲結束之後,隨著程式停止執行,該次的分數也就被丟棄,若能將分數記錄下來,下次遊戲開
Thumbnail
到目前為止,我們都還是在附檔名為.py的Python檔案執行程式碼,當程式需要與外部的檔案互動,例如讀取文字、表格、或是影像來做分析,或是把程式執行的結果儲存下來,就需要能夠存取外部的檔案。例如,在上一節中,當貪食蛇遊戲結束之後,隨著程式停止執行,該次的分數也就被丟棄,若能將分數記錄下來,下次遊戲開
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News