Ошибка при попытке открыть файл из каталога

Я пытаюсь открыть файл, но получаю:

Процесс не может получить доступ к файлу «X:\SubGraph\Prozess A.1.1.wkd», так как он используется другим процессом.

Кто-нибудь может помочь?

string activeDirectory = @"X:\SubGraph\";
string[] files = Directory.GetFiles(activeDirectory);
foreach (string fileName in files){
    FileStream file = new FileStream(fileName, FileMode.Open, FileAccess.Read);
    ....
    ....
}

c#
person User1979    schedule 12.07.2012    source источник
comment
Звучит глупо, но вы убедились, что файл не используется другим процессом? Вы можете попробовать перезагрузиться, чтобы знать, что не должно быть никаких других процессов, если только они не являются системными процессами, которые блокируют этот файл.   -  person CSharpened    schedule 12.07.2012
comment
Как я могу узнать, какой процесс использует этот файл   -  person User1979    schedule 12.07.2012
comment
Загрузите монитор процессов, чтобы выяснить это.   -  person Oded    schedule 12.07.2012


Ответы (1)


Пожалуйста, попробуйте открыть его, предоставив FileShare.Read

FileStream s2 = new FileStream(name, FileMode.Open, FileAccess.Read, FileShare.Read);

Взять из MSDN для FileShare.Read Разрешает последующее открытие файла для чтения. Если этот флаг не указан, любой запрос на открытие файла для чтения (этим процессом или другим процессом) не будет выполнен до тех пор, пока файл не будет закрыт. Однако даже если этот флаг указан, для доступа к файлу могут потребоваться дополнительные разрешения.

person HatSoft    schedule 12.07.2012
comment
не помогает иногда работало иногда нет - person User1979; 12.07.2012