进程无法访问文件“XYZ”的错误代码因为它正在被另一个进程使用
我使用 C# .NET ,vs 2008 , .net 3.5
对我来说,很困难,但我需要 C# 中的示例代码:
- 如何获取 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',因为它正在被另一个进程使用。”
I using C# .NET , vs 2008 , .net 3.5
For me, is difficult, but I need sample code in C# for this:
- How get the error code of IOException "The process cannot access the file 'XYZ' because it is being used by another process."
For example, in my issue.
I try delete file, and I get "The process cannot access the file 'XYZ' because it is being used by another process." Exception.
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."
}
But if .NET is Spanish, I get "El proceso no puede obtener acceso al archivo '00000004.PDF' porque está siendo utilizado en otro proceso" message.
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()
I need a ERROR CODE for that Exception. In Trace, I have seen System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
How get the error code of IOException "The process cannot access the file 'XYZ' because it is being used by another process."
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
您可能已经注意到 HResult 属性不可访问。解决方法是使用 Marshal.GetLastWin32Error() 方法获取本机 Windows 错误代码。像这样:
错误代码32在SDK中被命名为ERROR_SHARING_VIOLATION。
You might have noticed that the HResult property is not accessible. The workaround is to use the Marshal.GetLastWin32Error() method to get the native Windows error code. Like this:
Error code 32 is named ERROR_SHARING_VIOLATION in the SDK.
(IO-)Exception 上有一个 HResult 属性包含错误代码。根据此列表,您的异常的错误代码应该是0x20(我没有不过尝试一下)。希望有帮助。
there's an HResult property on (IO-)Exception that contains an error code. According to this list the error code for your exception should be 0x20 (I didn't try that though). Hope that helps.
(标记为 CW,因为这实际上只是一个扩展注释)
为什么需要错误代码?
(marked CW because this is really just an extended comment)
Why do you need the error code?
IOException
.查看
HRESULT
< /a> IOException 类的属性。这应该返回操作的 Win32 HRESULT(我认为您正在寻找这是什么?)。Have a look at the
HRESULT
property of the IOException class. This should return the Win32 HRESULT of the operation (which is what I think you're looking for?).