通讯历史按钮
private void uiButton1_Click(object sender, EventArgs e){try{logf = new logF();logf.Show();}catch (Exception){throw;} }
主页面关闭函数(点击保存就为true true就不删除)
private void page1_FormClosed(object sender, FormClosedEventArgs e){// 关闭应用时删除txt文件 为true就不删除if (logF.savelog== false){if (File.Exists(logF.filePath)){File.Delete(logF.filePath);}}Application.Exit();}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Sunny.UI;namespace WindowsFormsApp1
{public partial class logF : UIForm{public logF(){InitializeComponent();Application.EnableVisualStyles();//Application.Run(new MainForm());MainForm();}private FileSystemWatcher fileWatcher;public static string filePath = @"C:\log\run.txt";public static bool savelog=false;public void MainForm(){ 初始化RichTextBox//richTextBox1 = new RichTextBox();//richTextBox1.Dock = DockStyle.Fill;//this.Controls.Add(richTextBox1);// 初始化FileSystemWatcherfileWatcher = new FileSystemWatcher();fileWatcher.Path = Path.GetDirectoryName(filePath);fileWatcher.Filter = Path.GetFileName(filePath);fileWatcher.NotifyFilter = NotifyFilters.LastWrite | NotifyFilters.Size;// 绑定事件处理程序fileWatcher.Changed += OnFileChanged;fileWatcher.EnableRaisingEvents = true;// 初始加载文件内容LoadFileContent();}private void LoadFileContent(){try{// 读取文件内容并显示在RichTextBox中using (FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))using (StreamReader reader = new StreamReader(fs)){richTextBox1.Text = reader.ReadToEnd();}}catch (Exception ex){MessageBox.Show("Error reading file: " + ex.Message);}}private void OnFileChanged(object sender, FileSystemEventArgs e){在UI线程上更新RichTextBox内容//this.Invoke((MethodInvoker)delegate//{// LoadFileContent();//});if (this.IsHandleCreated) // 确保句柄已存在{this.BeginInvoke((MethodInvoker)delegate{LoadFileContent();});}}private void logF_Load(object sender, EventArgs e){ 读取txt文件内容并显示在文本框中//if (File.Exists(filePath))//{// string content = File.ReadAllText(filePath);// richTextBox1.Text = content;//}//else//{// MessageBox.Show("文件不存在!");//}}private void uiButton7_Click(object sender, EventArgs e){savelog = true;}private void uiButton1_Click(object sender, EventArgs e){System.Diagnostics.Process.Start(@"C:\log");}}
}
log.cs
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace WindowsFormsApp1
{internal class log{public static void SaveLog(string log, string filename = @"C:\log\run.txt"){string pathA = filename.Substring(0, filename.LastIndexOf("\\"));if (!Directory.Exists(pathA)){DirectoryInfo directoryInfo = new DirectoryInfo(pathA);directoryInfo.Create();}string filepathA = filename;try{String time = DateTime.Now.ToString("[yyyy-MM-dd hh:mm:ss]");time += log;if (!File.Exists(filepathA)){using (StreamWriter sw = File.CreateText(filepathA)){sw.WriteLine(time);sw.Close();}}else{{using (StreamWriter sw = File.AppendText(filepathA)){sw.WriteLine(time);sw.Close();}}}}catch{// MessageBox.Show("log异常" + ee.ToString());}}}
}
log.SaveLog("要保存的内容");