在删除之前如何确定文件正在使用?

Vad*_*dim 4 c# file-io exception

我正在写一个可能在某个时候删除文件的Windows服务.由于该服务正在处理常规文件IO,因此删除期间可能正在使用该文件.

目前我正在尝试删除并在发生异常时做出反应.代码看起来像这样:

try
{
    File.Delete(file);
    Status = ResponseStatus.Ok;
}
catch (IOException e)
{
    Status = ResponseStatus.FileInUse;
}
finally
{
    return Status;
}
Run Code Online (Sandbox Code Playgroud)

如何在不使用异常的情况下确定正在使用的文件?

Ric*_*dle 13

试图预先检测文件是否正在使用是没有意义的 - 如果有人在您的检测代码和删除代码之间打开文件会怎样?您仍然需要现有代码来应对这种情况.

您已经拥有的代码正是这样做的正确方法.