2010-03-09 8 views
4

Я использую LINQ, и мне было интересно, что является лучшим способом создания XDocument, а затем проверить, действительно ли XDocument существует, подобно File.Exists?Определение наличия файла XDocument

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

Есть ли способ сделать это?

Спасибо!

+0

Почему вы не проверяете File.Exists в первую очередь? – Jimmy

+0

Ну, я подумал об этом, но я не могу создать XDocument из Файла, насколько мне известно ... Если есть, пожалуйста, дайте мне знать :) –

ответ

11

Файл 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 
}