如何在代码尝试删除已在使用的文件时管理错误
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
}
}
我是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
}
}