发送日志文件与电子邮件?统一

时间:2017-06-24 17:28:20

标签: c# email unity3d io

我正在使用Unity和C# 我想在运行时将输出日志文件发送到我的电子邮件,我使用来自this question的ByteSheep回答和来自this question的ArkaneX评论来附加一个txt文件,现在我成功发送了txt文件但是怎么能我发送日志文件?我使用此代码设置日志System.Environment.GetFolderPath(System.Environment.SpecialFolder.LocalApplicationData) + @"\Unity\Editor\Editor.log"的路径,它确实获得了正确的路径,问题是我得到了

IOException: Sharing violation on path

调用System.Net.Mail.Attachment attachment = new System.Net.Mail.Attachment(attachmentPath);时。

我认为我需要首先关闭日志文件,但这是否可能? 也许解决方案是复制日志文件并发送新文件?那会有用吗?如果是这样的话?

任何帮助都是适用的。

提前致谢,

1 个答案:

答案 0 :(得分:2)

我有类似的情况,并提出了以下代码。由于程序正在使用日志文件,我正在创建它的副本并将其作为电子邮件附件发送。

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);