有時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;
}
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
}
像這樣的積木一樣搭配組合,可以方便使用為你的程式起個頭。