C#文件处理类

记录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);
                    }
                }
            }


        }
Code
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);
                }
            }


        }
    }
}

先清空文本里面的内容,在重新写入数据

代码
 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);
                    }                
            }
        }

以创建文件日期为条件删除旧文档

Code

读取文本

  string strIniPath = Path.GetDirectoryName(Process.GetCurrentProcess().MainModule.FileName) + "\\" + "Config.ini";

Code

 遍历指定路径下的文件

Code

保存 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();
            }

        }      
原文地址:https://www.cnblogs.com/ike_li/p/1393245.html