尝试使用File.OpenRead

时间:2015-06-10 22:43:14

标签: c# file-io file-access

我有一个正在处理文件的Windows服务。我们最近将框架升级到4.5。大约在这个时候,我们发现错误通常会导致错误 'System.IO.IOException:进程无法访问文件'D:\ Edata \ 29987082_CREDITNOTE.XML',因为它正由另一个进程使用。

当处理仅约30%时,这种情况不会一直发生。该服务使用FileInfo对象作为文件路径,然后使用File.Move更新名称。然后它使用新文件名重用FileInfo变量。几行后,它尝试用File.OpenRead打开文件并获取错误。

我见过使用FileInfo.MoveTo的类似帖子。我不确定这是否有帮助。我想知道导致错误的原因。

以下是相关代码。 fileToProcess是FileInfo

string DestPath = Path.GetDirectoryName(fileToProcess.FullName);
newpath = string.Format("{0}\\{1}_{2}", DestPath, transmissionid, Path.GetFileName(name));
File.Move(fileToProcess.FullName, newpath);
fileToProcess = new FileInfo(newpath);

LogWriter.Current.WriteLog(LogSeverityType.Info, "Info", string.Format("Tran {0}: Entering CreateCopy method", transmissionID), transmissionID); //This log get written fine

fileToProcess_Stream = File.OpenRead(fileToProcess.FullName);

0 个答案:

没有答案