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.
151 lines
5.0 KiB
151 lines
5.0 KiB
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.IO;
|
|
|
|
namespace ConUpdate
|
|
{
|
|
class LogHelper
|
|
{
|
|
/**/
|
|
/// <summary>
|
|
/// 写入日志文件
|
|
/// </summary>
|
|
/// <param name="input"></param>
|
|
public string WriteInfoFile(string input)
|
|
{
|
|
try
|
|
{
|
|
if (!Directory.Exists(Directory.GetCurrentDirectory() + "\\UpdateLogs"))
|
|
Directory.CreateDirectory(Directory.GetCurrentDirectory() + "\\UpdateLogs");
|
|
/**/
|
|
///指定日志文件的目录
|
|
string fname = Directory.GetCurrentDirectory() + "\\UpdateLogs\\LogFile(" + DateTime.Today.Date.ToString("yyyy-MM-dd") + ").txt";
|
|
/**/
|
|
///定义文件信息对象
|
|
|
|
FileInfo finfo = new FileInfo(fname);
|
|
|
|
if (!finfo.Exists)
|
|
{
|
|
FileStream fs;
|
|
fs = File.Create(fname);
|
|
fs.Close();
|
|
finfo = new FileInfo(fname);
|
|
}
|
|
|
|
/**/
|
|
///判断文件是否存在以及是否大于2K
|
|
if (finfo.Length > 1024 * 1024 * 10)
|
|
{
|
|
/**/
|
|
///文件超过10MB则重命名
|
|
File.Move(Directory.GetCurrentDirectory() + "\\UpdateLogs\\LogFile.txt", Directory.GetCurrentDirectory() + "\\UpdateLogs\\" + "LogFile{" + Guid.NewGuid() + "}.txt");
|
|
/**/
|
|
///删除该文件
|
|
//finfo.Delete();
|
|
}
|
|
//finfo.AppendText();
|
|
/**/
|
|
///创建只写文件流
|
|
|
|
using (FileStream fs = finfo.OpenWrite())
|
|
{
|
|
/**/
|
|
///根据上面创建的文件流创建写数据流
|
|
StreamWriter w = new StreamWriter(fs);
|
|
|
|
/**/
|
|
///设置写数据流的起始位置为文件流的末尾
|
|
w.BaseStream.Seek(0, SeekOrigin.End);
|
|
|
|
/**/
|
|
///写入“Log Entry : ”
|
|
w.Write("\n\rLog Entry : ");
|
|
|
|
/**/
|
|
///写入当前系统时间并换行
|
|
w.Write("{0} {1} \n\r", DateTime.Now.ToLongTimeString(),
|
|
DateTime.Now.ToLongDateString());
|
|
|
|
/**/
|
|
///写入日志内容并换行
|
|
w.Write(input + "\n\r");
|
|
|
|
/**/
|
|
///写入------------------------------------“并换行
|
|
//w.Write("------------------------------------\n\r");
|
|
|
|
/**/
|
|
///清空缓冲区内容,并把缓冲区内容写入基础流
|
|
w.Flush();
|
|
|
|
/**/
|
|
///关闭写数据流
|
|
w.Close();
|
|
|
|
return "0";
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
return ex.Message + ex.StackTrace;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 删除 fileName 文件夹里一个月之前的日志
|
|
/// </summary>
|
|
/// <param name="fileName"></param>
|
|
/// <param name="month"></param>
|
|
public void DeleteFiles(string fileName = "")
|
|
{
|
|
try
|
|
{
|
|
if (string.IsNullOrEmpty(fileName))
|
|
fileName = Directory.GetCurrentDirectory() + "\\UpdateLogs";
|
|
if (!Directory.Exists(fileName))//若文件夹不存在则返回
|
|
return;
|
|
DirectoryInfo dir = new DirectoryInfo(fileName);
|
|
//不是目录
|
|
|
|
if (dir == null)
|
|
return;
|
|
//DateTime DT = dir.CreationTime;
|
|
|
|
FileSystemInfo[] files = dir.GetFileSystemInfos();
|
|
for (int i = 0; i < files.Length; i++)
|
|
{
|
|
FileInfo file = files[i] as FileInfo;
|
|
//是文件
|
|
if (file != null)
|
|
{
|
|
DateTime DT = file.CreationTime;
|
|
if (DateTime.Now.Month - DT.Month >= 1)
|
|
{
|
|
file.Delete();
|
|
}
|
|
}
|
|
else
|
|
{
|
|
DirectoryInfo dir1 = files[i] as DirectoryInfo;
|
|
if (dir1 != null)
|
|
{
|
|
DateTime DT = dir1.CreationTime;
|
|
if (DateTime.Now.Month - DT.Month >= 1)
|
|
{
|
|
//dir1.Delete();
|
|
System.IO.Directory.Delete(fileName + "\\" + dir1.Name, true);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
catch
|
|
{
|
|
}
|
|
|
|
}
|
|
}
|
|
}
|
|
|