zoukankan      html  css  js  c++  java
  • 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();
                }
    
            }      
  • 相关阅读:
    HTTP/2的优先级
    JavaScript 日期权威指南
    岂曰无衣与子同袍
    Android项目中实现native调用
    关键渲染路径
    @ModelAttribute使用详解
    @SessionAttribute使用详解
    @ControllerAdvice 拦截异常并统一处理
    js获取文件MD5值
    Mybatis分页插件PageHelper的配置和使用方法
  • 原文地址:https://www.cnblogs.com/ike_li/p/1393245.html
Copyright © 2011-2022 走看看