using System; using System.Collections.Generic; using System.Data; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; namespace SunlightCentralizedControlManagement_SCCM_.View { /// /// LogView.xaml 的交互逻辑 /// public partial class LogView : UserControl { string Log_time = DateTime.Now.ToString("yyyy-MM-dd"); DataTable logdataTable = new DataTable(); //建立RRODUCT缓存 long TEXT_L; public LogView() { InitializeComponent(); comboBox_log.ItemsSource = new string[3] { "Log", "ERR", "Exchange" }; comboBox_log.Text = "Log"; logdataTable.Columns.Add("Name", typeof(string)); logdataTable.Columns.Add("Length", typeof(int)); logdataTable.Columns.Add("CreationTimeUtc", typeof(string)); logdataTable.Columns.Add("LastWriteTimeUtc", typeof(string)); LOG_file(); } private void LOG_file()//建立列表 { DirectoryInfo loginfo = new DirectoryInfo(System.Environment.CurrentDirectory + "\\"+comboBox_log.Text); //new文件夹 logdataTable.Clear(); foreach (var item in loginfo.GetFiles()) { DataRow FileRow = logdataTable.NewRow(); FileRow["Name"] = item.Name; FileRow["Length"] = item.Length / 1024; FileRow["CreationTimeUtc"] = item.CreationTimeUtc; FileRow["LastWriteTimeUtc"] = item.LastWriteTimeUtc; logdataTable.Rows.Add(FileRow); } logdataTable.DefaultView.Sort = "Name DESC"; gridLog.ItemsSource = logdataTable.DefaultView.ToTable().DefaultView; } private void DataGrid_gridLogClick(object sender, MouseButtonEventArgs e)//数据表双击事件 { int rownum = gridLog.SelectedIndex;//获取鼠标选中行并定义变量 if (rownum != -1)//判断鼠标定位是否有效 { /*定位选中行及指定列单元格文本信息*/ LOGDATA_file((gridLog.Columns[0].GetCellContent(gridLog.Items[rownum]) as TextBlock).Text.TrimEnd());// TEXT_L = long.Parse((gridLog.Columns[1].GetCellContent(gridLog.Items[rownum]) as TextBlock).Text.ToString()) *1024+1024;// } } private async void LOGDATA_file(string dat) //读取文件显示到前端 { Logtext.SelectAll(); Logtext.Cut(); Logtext.Document = new FlowDocument(); string filePath = System.Environment.CurrentDirectory + "\\"+comboBox_log.Text+ "\\"; try { Logtext.AppendText("Loading..."); string log_ = null; string log_DAT = await Task.Run(() => { // 使用StreamReader读取文件 using (StreamReader reader = new StreamReader(filePath + dat)) { // 读取文件直到文件的末尾 while (!reader.EndOfStream) { // 添加文件的每一行到RichTextBox log_ = log_ + reader.ReadLine() + "\n"; } } return log_; }); Logtext.SelectAll(); Logtext.Cut(); Logtext.AppendText(log_DAT); } catch (Exception ex) { // 处理可能发生的任何异常 MessageBox.Show("Error reading file: " + ex.Message); } } private void comboBox_log_DropDownClosed(object sender, EventArgs e) { LOG_file(); } } }