檔案的使用

更新 發佈閱讀 7 分鐘

有時Google老半天,只是想找個檔案讀取或寫入,或是用個Button開啟資料夾或相關檔案位置。

可能你程式也寫過,但臨時要找又一時找不到,我想介紹這樣的基本使用方式。

讓你和健忘的我省點心,馬上複製貼上小改一下就上陣。

寫入檔案(累加)

private void WrtCsv(string filename, string rowData)
{
try
{
FileInfo fileInfo = new FileInfo(filename);
// 串流寫入物件(檔案如果存在,就每次累加)
StreamWriter stWrt = fileInfo.AppendText();
stWrt.WriteLine(rowData);
stWrt.Flush();
stWrt.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}

寫入檔案(新建)

private void WrtCsv(string filename, string rowData)
{
try
{
FileInfo fileInfo = new FileInfo(filename);
// 串流寫入物件(不管原檔案是否已有內容,整個重建)
StreamWriter stWrt = fileInfo.CreateText();
stWrt.WriteLine(rowData);
stWrt.Flush();
stWrt.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}

讀取檔案(取正規表示式做應用)

private string readfile(string filepath)
{
string resultStr = "";
StreamReader sr = new StreamReader(filepath);
string line = "";
while ((line = sr.ReadLine()) != null)
{
resultStr += line; // 檔案中的每一行

// 找出檔案每行中的符合特定資訊的字串
if (Regex.IsMatch(line, @"^\*")) // 正規表示式自由應用
{
// do something ...
}
}
sr.Close();
return resultStr;
}

讀取CSV檔案(存Datatable)

private DataTable GetData(string fileNamePath)
{
StreamReader sr = new StreamReader(fileNamePath);
DataTable dt = new DataTable();
string line;

dt.Columns.Add("column1"); //0
dt.Columns.Add("column2"); //1
dt.Columns.Add("column3"); //2
dt.Columns.Add("column4"); //3
while ((line = sr.ReadLine()) != null)
{
string[] linesPara = line.Split(",".ToArray()); // 假設csv檔案使用 , 分隔
DataRow row = dt.NewRow();
row["column1"] = linesPara[0];
row["column2"] = linesPara[1];
row["column3"] = linesPara[2];
row["column4"] = linesPara[3];
dt.Rows.Add(row);
}
sr.Close();
return dt;
}

按下按鈕開啟對話框選檔案 (開檔案使用)

private void BtnRead_Click(object sender, EventArgs e)
{
OpenFileDialog dlg = new OpenFileDialog();
dlg.Multiselect = true; // true 代表可以多選 false 代表單選
dlg.DefaultExt = ".csv"; // 依需要去篩選副檔名
dlg.Filter = "csv|*.csv";
//dlg.Filter = "AllFile|*.*"; // 如果要改*.* 用這個
if (dlg.ShowDialog() != DialogResult.OK)
return; // 如果提前改變心意不選了離開就什麼都不做

string filenameFullPath = dlg.FileName; // 讀檔案絕對路徑
// 依需求讀入檔案
// doSomthing
}

按下按鈕開啟對話框選檔案 (存檔案使用)

private void BtnSave_Click(object sender, EventArgs e)
{
SaveFileDialog saveFileDialog = new SaveFileDialog();
saveFileDialog.DefaultExt = ".csv"; // 規則參考上面
saveFileDialog.Filter = "CSV|*.csv"; // 規則參考上面

if (saveFileDialog.ShowDialog() != DialogResult.OK)
return;
string filenameFullPath = saveFileDialog.FileName; // 存檔案絕對路徑
// 依需求寫入檔案
// doSomthing
}


像這樣的積木一樣搭配組合,可以方便使用為你的程式起個頭。





留言
avatar-img
寫程式也寫字的卡密優
27會員
429內容數
嗨,我是卡密優,一個寫程式也喜歡寫字的工程師。 我目前仍在職場中,但正在思考:有沒有可能用寫作與創作,打造更自由的工作與生活方式? 這裡是我的紀錄日記,也是一場關於技術、寫作、生活設計的實驗。歡迎你加入,一起慢慢長出屬於我們的自由樣貌。
你可能也想看
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
Google 表單,用法超多元,事半功倍必學好工具!
Thumbnail
Google 表單,用法超多元,事半功倍必學好工具!
Thumbnail
目前主流的瀏覽器在下載檔案時,預設都會存放在系統的下載資料夾中,如果長期使用下來沒有特別去整理,會造成資料夾過於雜亂,在找尋檔案也會花費很多時間,即便可以下載之前選擇存放位置,但每次都要確認,難免會顯得過於繁瑣..........
Thumbnail
目前主流的瀏覽器在下載檔案時,預設都會存放在系統的下載資料夾中,如果長期使用下來沒有特別去整理,會造成資料夾過於雜亂,在找尋檔案也會花費很多時間,即便可以下載之前選擇存放位置,但每次都要確認,難免會顯得過於繁瑣..........
Thumbnail
看到任何的新事物時,心裡所升起的感觸或想法,其實會藏在心底或腦海裡,平常時因為用不到,所以就被放到大腦的抽屜,而且藏得很深。但如果在寫文章,需要它的時候,那個抽屜就會打開,想法就會浮出……
Thumbnail
看到任何的新事物時,心裡所升起的感觸或想法,其實會藏在心底或腦海裡,平常時因為用不到,所以就被放到大腦的抽屜,而且藏得很深。但如果在寫文章,需要它的時候,那個抽屜就會打開,想法就會浮出……
Thumbnail
在工作中應該很多人都有這樣的經驗,明明前陣子才辛辛苦苦整理好的資料,當需要用時卻怎麼找也找不到,最後花了大半天時間在翻找檔案,甚至有時候還得重新整理一次。這種情況不但會讓人處於著急慌亂的狀態,也浪費了寶貴的時間,形成無效工時。
Thumbnail
在工作中應該很多人都有這樣的經驗,明明前陣子才辛辛苦苦整理好的資料,當需要用時卻怎麼找也找不到,最後花了大半天時間在翻找檔案,甚至有時候還得重新整理一次。這種情況不但會讓人處於著急慌亂的狀態,也浪費了寶貴的時間,形成無效工時。
Thumbnail
電子檔案打不開??? 為什麼打不開??? 要對應哪一個程式? 要先學會檔案掃毒 然後分辨是....程式執行檔還是文件檔 碰到不常用的檔案格式,不要立馬發文為什麼打不開 你可以先搜尋副檔名“關鍵字“或是到這個平台查詢...... 不要擔心“全英文”介面的網站,沒那麼困難 https:/
Thumbnail
電子檔案打不開??? 為什麼打不開??? 要對應哪一個程式? 要先學會檔案掃毒 然後分辨是....程式執行檔還是文件檔 碰到不常用的檔案格式,不要立馬發文為什麼打不開 你可以先搜尋副檔名“關鍵字“或是到這個平台查詢...... 不要擔心“全英文”介面的網站,沒那麼困難 https:/
Thumbnail
工具功能 (1) 彈性任意查詢檔案,如對來源目錄設定,檔案修改日期 設定,檔名特定字串或副檔名設定後,自動查出明細,並可展開至各階子目錄處理     (2) 依查詢後結果,可產出 LIST ,提供查詢結果之確認,再依此對檔案作複 (3) 可對檔案作移動,複製至別處,刪除處理,使電腦可騰出硬碟空間
Thumbnail
工具功能 (1) 彈性任意查詢檔案,如對來源目錄設定,檔案修改日期 設定,檔名特定字串或副檔名設定後,自動查出明細,並可展開至各階子目錄處理     (2) 依查詢後結果,可產出 LIST ,提供查詢結果之確認,再依此對檔案作複 (3) 可對檔案作移動,複製至別處,刪除處理,使電腦可騰出硬碟空間
Thumbnail
5 月將於臺北表演藝術中心映演的「2026 北藝嚴選」《海妲・蓋柏樂》,由臺灣劇團「晃晃跨幅町」製作,本文將以從舞台符號、聲音與表演調度切入,討論海妲・蓋柏樂在父權社會結構下的困境,並結合榮格心理學與馮.法蘭茲對「阿尼姆斯」與「永恆少年」原型的分析,理解女人何以走向精神性的操控、毀滅與死亡。
Thumbnail
5 月將於臺北表演藝術中心映演的「2026 北藝嚴選」《海妲・蓋柏樂》,由臺灣劇團「晃晃跨幅町」製作,本文將以從舞台符號、聲音與表演調度切入,討論海妲・蓋柏樂在父權社會結構下的困境,並結合榮格心理學與馮.法蘭茲對「阿尼姆斯」與「永恆少年」原型的分析,理解女人何以走向精神性的操控、毀滅與死亡。
Thumbnail
從電腦桌面、檔案的管理,就可觀察出人的工作能力。 有些桌面是滿滿滿的Word、Excel、PPT、資料夾、程式...,還有檔名不同但內容相同、檔名相同但進度不同、多胞胎檔案散布各處....。 光要找到對的資料,就先耗費心神,大大影響工作效率。終於找到檔案可以開始作業,但戰鬥力被消磨掉不知道剩幾%了。
Thumbnail
從電腦桌面、檔案的管理,就可觀察出人的工作能力。 有些桌面是滿滿滿的Word、Excel、PPT、資料夾、程式...,還有檔名不同但內容相同、檔名相同但進度不同、多胞胎檔案散布各處....。 光要找到對的資料,就先耗費心神,大大影響工作效率。終於找到檔案可以開始作業,但戰鬥力被消磨掉不知道剩幾%了。
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
工作上固定頻率會收到User提供的設定需求資訊,檔案大多為excel的格式.xlsx或.xls,需要擷取內容的參數資訊,轉換撰寫sql語法寫入資料庫進行操作。 既然格式都是固定的,何不動手寫個小工具,一鍵完成轉換呢?
Thumbnail
工作上固定頻率會收到User提供的設定需求資訊,檔案大多為excel的格式.xlsx或.xls,需要擷取內容的參數資訊,轉換撰寫sql語法寫入資料庫進行操作。 既然格式都是固定的,何不動手寫個小工具,一鍵完成轉換呢?
Thumbnail
背景:從冷門配角到市場主線,算力與電力被重新定價   小P從2008進入股市,每一個時期的投資亮點都不同,記得2009蘋果手機剛上市,當時蘋果只要在媒體上提到哪一間供應鏈,隔天股價就有驚人的表現,當時光學鏡頭非常熱門,因為手機第一次搭上鏡頭可以拍照,也造就傳統相機廠的殞落,如今手機已經全面普及,題
Thumbnail
背景:從冷門配角到市場主線,算力與電力被重新定價   小P從2008進入股市,每一個時期的投資亮點都不同,記得2009蘋果手機剛上市,當時蘋果只要在媒體上提到哪一間供應鏈,隔天股價就有驚人的表現,當時光學鏡頭非常熱門,因為手機第一次搭上鏡頭可以拍照,也造就傳統相機廠的殞落,如今手機已經全面普及,題
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News