C#for FileStream构造函数抛出异常,CreateNew用于现有文件

dke*_*sen 4 c# exception ioexception file-exists

我在C#(.NET Web服务)中创建一个文件,并且不想覆盖现有文件.

方法似乎是构建一个FileMode.CreateNew设置的FileStream.事实上,如果文件存在,它会抛出异常.

但是,如何识别此异常,而不是文件创建引发的其他可能异常?http://msdn.microsoft.com/en-us/library/47ek66wy.aspx上的文档将此案例列为"IOException",这显然是模糊的,因为其他事情可能会导致这种情况.

这里的答案是我捕获IOException然后只是做一个File.Exists?

Dmi*_*sky 5

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

int hr = Marshal.GetHRForException( ex );
Run Code Online (Sandbox Code Playgroud)

对于存在的文件,它将是0x80070050.