确定是否存在XDocument文件

时间:2010-03-09 00:13:15

标签: c# linq linq-to-xml

我正在使用LINQ,我想知道创建XDocument的最佳方法是什么,然后检查以确保XDocument实际存在,就像File.Exists一样?

String fileLoc = "path/to/file";
XDocument doc = new XDocument(fileLoc);
//Now I want to check to see if this file exists

有办法做到这一点吗?

谢谢!

1 个答案:

答案 0 :(得分:12)

XML文件仍然是一个文件;只需使用File.Exists

但请注意:在加载文档之前,不要试图立即检查File.Exists。当您尝试打开文件时,无法保证文件仍然存在。编写这段代码:

if (File.Exists(fileName))
{
    XDocument doc = XDocument.Load(fileName);
    // etc.
}

......是一种竞争条件,总是错误的。相反,只需尝试加载文档并捕获异常。

try
{
    XDocument doc = XDocument.Load(fileName);
    // Process the file
}
catch (FileNotFoundException)
{
    // File does not exist - handle the error
}