File.Copy出现奇怪的IOException:据称其他进程正在使用的非现有文件

时间:2010-10-25 10:00:41

标签: c# exception

这让我疯了。

我从邮箱中检索了一堆电子邮件,并将它们保存为文件夹中的文件。 邮箱中目前只有一封邮件(这个特定邮件不是问题,也尝试过其他邮件)。 检索后,我将邮件主题与唯一的GUID字符串连接起来,将其另存为文件,并在另一个文件夹中创建该文件的另一个副本。 这反复给我一个IOException,说无法访问DESTINATION FILE(因为它据称被另一个进程使用)。 此时目标文件不存在,因此无法使用。

希望任何人都可以提供帮助或者提示。

提前致谢。

此致 凯文

编辑(更多信息)

        private static void _backupMailFile(string sourceFile, string destinationFile)
        {
            log.Info(String.Format("Archiving mail file '{0}' to '{1}'", sourceFile, destinationFile));

            try
            {
                File.Copy(sourceFile, destinationFile);
            }
            catch (Exception ex)
            {
                log.Error("Error while archiving mail: " + sourceFile, ex);
            }
        }

sourceFile =“D:\ Development \ POP3toSCSM \ POP3toSCSM \ bin \ Debug \ TempMails \ AW_ Outlook Web App Light-47459c48-8c8c-4c51-be63-e6e2ddcc54d3.eml”

destinationFile =“C:\ MailIn \ Archive \ AW_ Outlook Web App Light-47459c48-8c8c-4c51-be63-e6e2ddcc54d3.eml”

此时文件夹“C:\ MailIn \ Archive”为空。

权限有效。

再次感谢。

1 个答案:

答案 0 :(得分:0)

它是Chilkat组件(怀疑)或我的'LoadEml'方法的包装类。一旦我从邮箱中检索到最后一封邮件后添加System.Threading.Thread.Sleep(250),一切正常。 但是你不同意目标路径没有任何问题,而不是异常消息读取的内容吗?

修改的 猜猜我错了: - (

堆栈跟踪:

StackTrace =“bei System.IO .__ Error.WinIOError(Int32 errorCode,String maybeFullPath)\ r \ n bei System.IO.File.InternalCopy(String sourceFileName,String destFileName,Boolean overwrite)\ r \ n bei System。 IO.File.Copy(String sourceFileName,String destFileName)\ r \ n ...