记录Errorlog
//获得程序运行目录
using System.IO;
using System.Diagnostics;
string runExeDir = Path.GetDirectoryName(Process.GetCurrentProcess().MainModule.FileName);
加个lock 可以避免同时写入的时候进程占用的问题。
private static object locker = new object(); static string logFilePath = Path.GetDirectoryName(Process.GetCurrentProcess().MainModule.FileName)+"\\log.txt"; public static void Write(string msg) { lock (locker) { using (FileStream fs = new FileStream(logFilePath, FileMode.Append, FileAccess.Write)) { using (StreamWriter sw = new StreamWriter(fs, Encoding.UTF8)) { sw.WriteLine(">>" + DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss") + " " + msg); } } } }
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
using System.Collections.Generic; using System.Text; using System.IO; using System.Diagnostics; namespace SerialPortTool { public class Log { static string logFilePath = Path.GetDirectoryName(Process.GetCurrentProcess().MainModule.FileName)+"\\log.txt"; public static void Write(string msg) { using (FileStream fs = new FileStream(logFilePath, FileMode.Append, FileAccess.Write)) { using (StreamWriter sw = new StreamWriter(fs, Encoding.UTF8)) { sw.WriteLine(">>" + DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss") + " " + msg); } } } } }
先清空文本里面的内容,在重新写入数据
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
public static void ReWriteTxt(string txtPath,string strMsg)
{
using (FileStream fs = new FileStream(txtPath,FileMode.Truncate, FileAccess.Write))
{
using (StreamWriter sw = new StreamWriter(fs, Encoding.Unicode))
{
sw.WriteLine(strMsg);
}
}
}
{
using (FileStream fs = new FileStream(txtPath,FileMode.Truncate, FileAccess.Write))
{
using (StreamWriter sw = new StreamWriter(fs, Encoding.Unicode))
{
sw.WriteLine(strMsg);
}
}
}
以创建文件日期为条件删除旧文档
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
读取文本
string strIniPath = Path.GetDirectoryName(Process.GetCurrentProcess().MainModule.FileName) + "\\" + "Config.ini";
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
遍历指定路径下的文件
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
保存 RichTextbox 里面的内容
private void toolStripButtonSaveLog_Click(object sender, EventArgs e) { string runFolder = System.Windows.Forms.Application.StartupPath; string saveFolder = runFolder + "\\" + DateTime.Now.ToString("yyyy_MM_dd"); string fileName= DateTime.Now.ToString("yyyy_MM_dd_HH_mm") + "_" + toolStripComboBoxChannel.Text + ".txt"; if(File.Exists(saveFolder+"\\"+ fileName)) { File.Delete(saveFolder + "\\" + fileName); } SaveFileDialog saveFile = new SaveFileDialog(); saveFile.Title = "save file"; //saveFile.OverwritePrompt = true; //saveFile.CreatePrompt = true; saveFile.AddExtension = true; saveFile.Filter = "file(*.txt)|*.txt|all file(*.*)|*.*"; if (!Directory.Exists(saveFolder)) { Directory.CreateDirectory(saveFolder); } saveFile.InitialDirectory = saveFolder; saveFile.FileName = fileName; if (saveFile.ShowDialog() == DialogResult.OK) { StreamWriter sw = new StreamWriter(saveFile.FileName, true); sw.WriteLine("Software Version:"+SoftwareVersion); sw.Write(this.rtxtLog.Text.Replace("\n", "\r\n"));//记事本打开换行 sw.Flush(); sw.Close(); } }