C# 如何使2个进程访问同一路径?

C# 如何使2个进程访问同一路径?,c#,C#,我用的是c。我收到一个关于其他进程当前访问的路径的错误。我的系统试图做的是访问路径:@“C:\temps\”+client_ids+““+rown+”.pdf”,并在发送到客户的电子邮件之前使用相同的路径作为附件 这是我到目前为止所做的。我注释掉了一些代码,因为我不知道该怎么做 FileStream fs = null; using (fs = new FileStream(@"C:\\temps\\" + client_ids + "_" + rown + ".pdf", FileMode

我用的是c。我收到一个关于其他进程当前访问的路径的错误。我的系统试图做的是访问路径:@“C:\temps\”+client_ids+““+rown+”.pdf”,并在发送到客户的电子邮件之前使用相同的路径作为附件

这是我到目前为止所做的。我注释掉了一些代码,因为我不知道该怎么做

FileStream fs = null;
using (fs = new FileStream(@"C:\\temps\\" + client_ids + "_" + 
rown + ".pdf", 
FileMode.Open,FileAccess.Read,FileShare.ReadWrite))
{
    TextReader tr = new StreamReader(fs);                  
    //report.ExportToDisk
    //(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat,tr);
    //report.Dispose();
    //Attachment files = new Attachment(tr);
    //Mailmsg.Attachments.Add(files);
    //Clients.Send(Mailmsg);
}

您可以在邮件附件中使用文件之前制作文件的临时副本,然后使用副本而不是原始文件

您可以在邮件附件中使用文件之前制作文件的临时副本,然后使用副本而不是原始文件

如果文件已打开,则无法将文件附加到电子邮件。您必须先关闭(保存)该文件

虽然@ali答案在技术上是正确的,但它是不必要的。为什么要经历创建文件副本的开销,然后需要删除文件副本,等等

假设我理解您正试图正确执行的操作,只需在成功创建和保存文件后将邮件代码移动到即可。而且,我认为您不需要文件流或文本阅读器的开销。只要报表对象可以将文件保存到磁盘上的某个位置,您就可以将该文件附加到电子邮件中,然后发送

虽然我并不声称对Crystal Decisions如何处理出口等问题有任何了解,但也许类似的事情会起作用:

(我从以下地址获得此代码:)

您需要更改ExportFormatType属性

然后,只需将文件附加到您的电子邮件并发送:

Attachment Files = new Attachment(filename);
Mailmsg.Attachments.add(files);
Clients.Send(Mailmsg);

如果文件已打开,则无法将该文件附加到电子邮件。您必须先关闭(保存)该文件

虽然@ali答案在技术上是正确的,但它是不必要的。为什么要经历创建文件副本的开销,然后需要删除文件副本,等等

假设我理解您正试图正确执行的操作,只需在成功创建和保存文件后将邮件代码移动到即可。而且,我认为您不需要文件流或文本阅读器的开销。只要报表对象可以将文件保存到磁盘上的某个位置,您就可以将该文件附加到电子邮件中,然后发送

虽然我并不声称对Crystal Decisions如何处理出口等问题有任何了解,但也许类似的事情会起作用:

(我从以下地址获得此代码:)

您需要更改ExportFormatType属性

然后,只需将文件附加到您的电子邮件并发送:

Attachment Files = new Attachment(filename);
Mailmsg.Attachments.add(files);
Clients.Send(Mailmsg);

报告是哪种类型的变量?您似乎正在尝试将报表导出到
文本阅读器
,但该功能不太可能正常工作。请始终使用它来构建路径。感谢您的建议42。John Wu爵士。我的报告来自我的报告类。
report
变量是什么类型的?您似乎正在尝试将报表导出到
文本阅读器
,但该功能不太可能正常工作。请始终使用它来构建路径。感谢您的建议42。John Wu爵士。我的报告是我报告课上的。阿里爵士,你有你想说什么的密码吗?我明白你想说的,先生,但我不确定我的代码库。非常感谢您的回复。不客气。查看微软的链接:阿里爵士,你有没有一个你想说的代码?我明白你想说的,先生,但我不确定我的代码库。非常感谢您的回复。不客气。从microsoft签出此链接: