c# - 在 C# 中针对现有文件的 CreateNew 的 FileStream 构造函数抛出异常

标签 c# exception ioexception file-exists

我正在用 C#(.NET Web 服务)创建文件并且不想覆盖现有文件。

方法似乎是构造一个带有 FileMode.CreateNew 集的 FileStream。如果文件存在,它实际上会抛出异常。

但是我如何识别此异常而不是文件创建引发的其他可能异常? http://msdn.microsoft.com/en-us/library/47ek66wy.aspx 处的文档将这种情况列为“IOException”,这显然是含糊不清的,因为其他事情也可能导致这种情况。

这里的答案是我捕获 IOException 然后只执行 File.Exists 吗?

最佳答案

您可以从异常中获取错误代码,如下所示:

int hr = Marshal.GetHRForException( ex );

如果文件存在,它将是 0x80070050。

关于c# - 在 C# 中针对现有文件的 CreateNew 的 FileStream 构造函数抛出异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9220554/

相关文章:

c# - 正则表达式 - 在特定情况下替换 C# 字符串中的字符

python - 我应该什么时候声明自定义异常?

exception - 在 Common Lisp 中安装条件处理器

java - 使用https错误上传文件?

c# - 为什么TcpClient.Connect即使同步运行也不会在异步方法中引发异常

c# - 是否有一些库可以帮助我在 C# 中编写 Javascript 代码?

java - 当抛出 IOE 时,JUnit 期望 IOException,将测试标记为失败

java.io.IOException : File Size Incorrect (only get error on linux (CentOS 6)) 异常

c# - 在生产应用程序中使用 ASP.NET MVC 2 Preview 1 是否可行?

java - 处理异常而不导致套接字服务器崩溃?