2014-11-08 3 views
-2

Я рассмотрел несколько решений для чтения файла, который уже используется другим процессом, но ни один из них не работает для меня.Открытие файла, который используется другим процессом

Файл, который я пытаюсь прочитать, представляет собой файл XML, содержащий параметры конфигурации, которые мне нужно извлечь.

Вот что я пробовал:

using (var stream = File.Open("\\\\2008r2\\c$\\ProgramData\\location\\siteConfig.xml", FileMode.Open, FileAccess.Read, FileShare.ReadWrite)) 
using (var reader = new StreamReader(stream)) 
{ 
    // Actions you perform on the reader. 
    while (!reader.EndOfStream) 
    { 
     Console.WriteLine(reader.ReadLine()); 
    } 
} 

Это похоже на работу для почти всех остальных, я не знаю, что я делаю неправильно! Является ли мой файл заблокированным по-другому и не может быть доступен даже для чтения?

Помогите оценить!

Dave

+0

Взгляните на документацию MSDN [MSDN File.Open Method] (http://msdn.microsoft.com/en-us/library/y973b725 (v = vs.110) .aspx) – MethodMan

+0

Вы пытались использовать ['File.ReadAllLines()'] (http://msdn.microsoft.com/en-us/library/s2tte0y1 (v = vs.110) .aspx) или ['File.ReadLines()'] (http: //msdn.microsoft.com/en-us/library/dd383503(v=vs.110).aspx)? Оба они предлагают альтернативные способы открытия файла для доступа только для чтения. –

+0

Вы получаете исключение «Файл в использовании» или другое сообщение об ошибке? – keyboardP

ответ

1

Ваш комментарий, оригинальный процесс открыл файл с FileShare.None. От MSDN:

Снижает общий доступ к текущему файлу. Любой запрос на открытие файла ( этот процесс или другой процесс) завершится неудачно, пока файл не будет закрыт.

оригинальный процесс имеет эксклюзивную блокировку на нем, так что вы не будете иметь возможность читать из него, если FileShare перечисление не изменяется с None или закрытия файла.

+0

Да, это несчастливо! К сожалению, я не могу изменить эксклюзивный доступ :( – DavidC799

Смежные вопросы