我正在使用 Unity 和 C#
我想在运行时将输出日志文件发送到我的电子邮件,我使用 this question 中的 ByteSheep 答案和 ArkaneX 评论来自 this question附加txt文件,现在我成功发送txt文件,但是如何发送日志文件?我使用此代码设置日志 System.Environment.GetFolderPath(System.Environment.SpecialFolder.LocalApplicationData) + @"\Unity\Editor\Editor.log"
的路径,它确实得到了正确的结果路径,问题是我得到了
IOException: Sharing violation on path
当调用System.Net.Mail.Attachmentattachment = new System.Net.Mail.Attachment(attachmentPath);
时。
我想我需要先关闭日志文件,但这可能吗? 也许一种解决方案是复制日志文件并发送新的?那行得通吗?如果是这样怎么办?
感谢任何帮助。
提前致谢,
最佳答案
我遇到了类似的情况并想出了下面的代码。由于程序正在使用日志文件,因此我正在创建它的副本并将其作为电子邮件附件发送。
private string logFilePathS = @Directory.GetCurrentDirectory() + @"\logs\log.txt";
private string logFilePathD = @Directory.GetCurrentDirectory() + @"\logs\log-" + String.Format("{0:dd-MMM-yyyy}", DateTime.Now) + ".txt";
File.Copy(logFilePathS, logFilePathD, true);
mailMessage.Attachments.Add(new Attachment(logFilePathD));
电子邮件发送后,您可以删除创建的新文件。
File.Delete(logFilePathD);
关于c# - 通过电子邮件发送日志文件?统一,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44739094/