Открыть .txt файл, занятый другой программой
Есть ли какая нибудь возможность парсить .txt файл если он занят другой программой?
Какая разница между ReadAllText и FileStream. Когда пытаюсь считать файл, ошибка "Файл занят другим процессом"
Читаю файл так
foreach (string item in PathToFiles)
{
string srt = @item;
data += File.ReadAllText(srt);
}
Ответы (1 шт):
Автор решения: aepot
→ Ссылка
File.ReadAllText(path) пытается получить доступ к файлу, но не может, возможно это связано с особыми параметрами при открытии файла, например там под капотом используется последовательное чтение FileOptions.SequientialScan. Но есть более "нежный" способ открыть файл для чтения не задавая лишних опций.
File.OpenRead(path) эквивалентен new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.Read) - документация.
foreach (string item in PathToFiles)
{
using StreamReader sr = new StreamReader(File.OpenRead(item));
data += sr.ReadToEnd();
}