//输出监控日志文件
string printname = textBox5.Text;
string str = PrinterStatusByName.GetPrinterStatusByName(printname);
// Console.Write(printname);
string sFilePath = "d:\\打印机监控日志\\";
string sFileName = DateTime.Now.ToString("yyyy-MM-dd") + ".log";
sFileName = sFilePath + "\\" + sFileName; //文件的绝对路径
if (!Directory.Exists(sFilePath))//验证路径是否存在
{
Directory.CreateDirectory(sFilePath);
//不存在则创建
}
FileStream fs;
StreamWriter sw;
if (File.Exists(sFileName))
//验证文件是否存在,有则追加,无则创建
{
fs = new FileStream(sFileName, FileMode.Append, FileAccess.Write);
}
else
{
fs = new FileStream(sFileName, FileMode.Create, FileAccess.Write);
}
sw = new StreamWriter(fs);
sw.WriteLine(DateTime.Now.ToString("yyyy年MM月dd日 HH:mm:ss") + " 当前打印机状态--- " + str);
sw.Close();
fs.Close();
//定期销毁日志
string Path = "d:\\打印机监控日志\\";
if (Directory.Exists(Path))
{
DirectoryInfo dinfor = new DirectoryInfo(Path);
FileInfo[] files = dinfor.GetFiles();
foreach (FileInfo file in files)
{
//删除日志名称日期是1天前的日志
if (DateTime.Compare(Convert.ToDateTime(file.Name.Substring(0, 10)), DateTime.Now.AddDays(-1)) < 0)
{
// Console.WriteLine("1");
file.Delete();
}
//删除日志创建日期是1天前的日志
if (DateTime.Compare(file.CreationTime.AddDays(1), DateTime.Now) < 0)
{
// Console.WriteLine("2");
file.Delete();
}
//删除最后修改日志日期是1天前的日志打印机状态监控
if (DateTime.Compare(file.LastWriteTime.AddDays(1), DateTime.Now) < 0)
{
// Console.WriteLine("3");
file.Delete();
}
}
}
C#显示当前计算机所有打印机名称,同时获取指定打印机的状态比如缺纸、缺墨等,并且生成记录日志和数据库,发送邮件通知当前打印出错消息,打包成exe安装文件——(二)获取服务器所有打印机链接
https://blog.csdn.net/yangjueye/article/details/80589687
关于整套程序如果有不懂得欢迎微信扫码提问!