using System; using System.Collections.Generic; using System.Text; using System.IO; using System.Windows.Forms; namespace InvoicingTool { public class LogHelper { public static string path = Application.StartupPath; public static void WriteServiceLog(string LogData) { LogData = DateTime.Now.ToLongTimeString()+":" + LogData; string LogName = "日志_Send"+System.DateTime.Now.Year.ToString() + "-" + System.DateTime.Now.Month.ToString() + "-" + System.DateTime.Now.Day.ToString()+".log"; string filename = path + "\\log\\" + LogName; if (!Directory.Exists(path + "\\log\\")) Directory.CreateDirectory(path + "\\log\\"); FileStream fs = new FileStream(filename, FileMode.OpenOrCreate); fs.Seek(0, SeekOrigin.End); byte[] _data = new UTF8Encoding().GetBytes(LogData+"\r\n"); fs.Write(_data, 0, _data.Length); fs.Flush(); fs.Close(); } public static void WriteServiceLog2(string LogData) { LogData = DateTime.Now.ToLongTimeString() + ":" + LogData; string LogName = "日志_Receive" + System.DateTime.Now.Year.ToString() + "-" + System.DateTime.Now.Month.ToString() + "-" + System.DateTime.Now.Day.ToString() + ".log"; string filename = path + "\\" + LogName; FileStream fs = new FileStream(filename, FileMode.OpenOrCreate); fs.Seek(0, SeekOrigin.End); byte[] _data = new UTF8Encoding().GetBytes(LogData + "\r\n"); fs.Write(_data, 0, _data.Length); fs.Flush(); fs.Close(); } /// /// 删除指定目录下的指定后缀名的文件 /// /// 要删除的文件所在的目录,是绝对目录,如d:\temp /// 要删除的文件的后缀名的一个数组,比如masks中包含了.cs,.vb,.c这三个元素 /// 表示是否需要递归删除,即是否也要删除子目录中相应的文件 /// 表示是否忽略隐藏文件 /// /// 表示总共删除的文件数 public static void DeleteFiles(string directory, string[] masks, bool searchSubdirectories, bool ignoreHidden, ref int deletedFileCount) { //先删除当前目录下指定后缀名的所有文件 foreach (string file in Directory.GetFiles(directory, "*.*")) { if (!(ignoreHidden && (File.GetAttributes(file) & FileAttributes.Hidden) == FileAttributes.Hidden)) { foreach (string mask in masks) { if (Path.GetExtension(file) == mask) { FileInfo _FileInfo = new FileInfo(file); if (_FileInfo.LastWriteTime < DateTime.Now.Date.AddDays(-10)) { _FileInfo.Delete(); deletedFileCount++; } } } } } //如果需要对子目录进行处理,则对子目录也进行递归操作 if (searchSubdirectories) { string[] childDirectories = Directory.GetDirectories(directory); foreach (string dir in childDirectories) { if (!(ignoreHidden && (File.GetAttributes(dir) & FileAttributes.Hidden) == FileAttributes.Hidden)) { DeleteFiles(dir, masks, searchSubdirectories, ignoreHidden, ref deletedFileCount); } } } } } }