gpt4 book ai didi

c# - 进程无法访问文件 'XYZ' 的错误代码,因为它正被另一个进程使用

转载 作者:行者123 更新时间:2023-11-30 19:33:39 25 4
gpt4 key购买 nike

我使用 C# .NET,对比 2008,.net 3.5

对我来说,这很困难,但我需要 C# 中的示例代码:

  1. 如何获取 IOException 的错误代码“该进程无法访问文件 'XYZ',因为它正被另一个进程使用。”

例如,在我的问题中。

我尝试删除文件,但我得到“该进程无法访问文件‘XYZ’,因为它正被另一个进程使用。”异常。

try
{
File.Delete(infoFichero.Ruta);
}
catch (IOException ex)
{
// ex.Message == "The process cannot access the file 'XYZ' because it is being used by another process."
}

但如果 .NET 是西类牙语,我会收到“El proceso no puede obtener acceso al archivo '00000004.PDF' porque está siendo utilizado en otro proceso”消息。

System.IO.IOException: El proceso no puede obtener acceso al archivo '00000004.PDF' porque está siendo utilizado en otro proceso.
en System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
en System.IO.FileInfo.Delete()

我需要该异常的错误代码。在 Trace 中,我看到了 System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)

如何获取 IOException 的错误代码“该进程无法访问文件 'XYZ',因为它正被另一个进程使用。”

最佳答案

您可能已经注意到 HResult 属性不可访问。解决方法是使用 Marshal.GetLastWin32Error() 方法获取 native Windows 错误代码。像这样:

        catch (IOException ex) {
int err = System.Runtime.InteropServices.Marshal.GetLastWin32Error();
if (err == 32) Console.WriteLine("It's locked");
// etc..
}

错误代码 32 在 SDK 中被命名为 ERROR_SHARING_VIOLATION。

关于c# - 进程无法访问文件 'XYZ' 的错误代码,因为它正被另一个进程使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3259303/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com