如何在代码尝试删除已在使用的文件时管理错误

How to manage an error while code try to delete a file that is already in use

我是c#的初学者,希望你能帮助我。 我必须并行 运行 8 个代码。 七个代码每 10 秒写入一个文本文件。 每分钟开始时,文件都会复制到不同的文件夹中。 第八段代码在 05 秒读取每分钟复制的文件。 我的问题是,有时 7 代码复制文件可能会延迟,并且它可能会在文件已经被第八代码打开时尝试删除文件,并产生错误 System.IO.File.InternalDelete。 有人可以让我知道如何使用我在 VBA.

中使用的“On error resume next”之类的代码来处理此错误

提前感谢您的贡献。

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

只需尝试捕获您的 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 
    }
}