You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

111 lines
4.2 KiB

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
{
/// <summary>
/// LogView.xaml 的交互逻辑
/// </summary>
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<string>.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();
}
}
}