我是C#的初学者,希望您能对我有所帮助。 我必须并行运行8个代码。 七个代码每10秒写入一个文本文件。 每分钟开始时,文件将复制到另一个文件夹中。 第八条代码读取05秒每分钟复制的文件。 我的问题是,有时这7个代码可能会延迟文件的复制,并且可能会在第八个代码已打开文件时尝试删除这些文件,并生成错误System.IO.File.InternalDelete。 有人可以让我知道如何使用在VBA中使用的“下一步发生错误时恢复”这样的代码来处理此错误。
预先感谢您的贡献。
Write_Lines(Output_SERVER);
if ( Directory.Exists(PC_DIRECTORY) && (BarsOfData(1).Status == EBarState.Close || Output_Calcul > Output_Date) )
{
if (File.Exists(PC_DIRECTORY + @"\" + FILE_NAME)) { File.Delete(PC_DIRECTORY + @"\" + FILE_NAME); }
File.Copy(SERVER_DIRECTORY + @"\" + FILE_NAME, PC_DIRECTORY + @"\" + FILE_NAME);
}
答案 0 :(得分:1)
只需尝试捕获您的File.Delete和File.Copy调用即可处理此异常:
catch (System.IO.IOException ex)
因此:
if ( Directory.Exists(PC_DIRECTORY) && (BarsOfData(1).Status == EBarState.Close || Output_Calcul > Output_Date) )
{
try
{
if (File.Exists(PC_DIRECTORY + @"\" + FILE_NAME))
{
File.Delete(PC_DIRECTORY + @"\" + FILE_NAME);
}
File.Copy(SERVER_DIRECTORY + @"\" + FILE_NAME, PC_DIRECTORY + @"\" + FILE_NAME);
} catch (System.IO.IOException ex)
{
//handle the exception here
}
}