Как открыть StreamReader
с FILE_SHARE_READ
, FILE_SHARE_WRITE
, FILE_SHARE_DELETE
?
Тот же вопрос, немного расширенный
Как открыть StreamReader
, чтобы я мог прочитать закодированный текстовый файл с параметрами общего доступа, чтобы другой процесс мог прочитать файл?
Как открыть StreamReader
, чтобы я мог читать закодированный текстовый файл с параметрами общего доступа, чтобы другой процесс мог изменять файл, пока я его читаю?
Как открыть StreamReader
, чтобы я мог прочитать закодированный текстовый файл с параметрами общего доступа, чтобы другой процесс мог удалить файл, пока я его читаю?
Тот же вопрос, чуть более развернутый
В библиотеке классов .NET Framework есть класс с именем StreamReader
. Это единственный класс, предназначенный для чтения "текста", поэтому он происходит от абстрактного базового класса TextReader
. TextReader/StreamReader
позволяет вам указать кодировку, используемую файлом, который вы пытаетесь открыть, и может декодировать файл для вас, возвращая Strings
текста.
Как только я открыл файл с StreamReader
:
var sr = new StreamReader(path);
Файл заблокирован, и другие процессы не могут изменить или удалить файл. Мне нужен эквивалент класса FileStream
FileShare
перечисление:
- Нет: отклоняет общий доступ к текущему файлу. Любой запрос на открытие файла (этим процессом или другим процессом) не будет выполнен до тех пор, пока файл не будет закрыт.
- Чтение: разрешает последующее открытие файла для чтения. Если этот флаг не указан, любой запрос на открытие файла для чтения (этим процессом или другим процессом) будет завершаться ошибкой, пока файл не будет закрыт. Однако даже если этот флаг указан, для доступа к файлу могут потребоваться дополнительные разрешения.
- Запись: разрешает последующее открытие файла для записи. Если этот флаг не указан, любой запрос на открытие файла для записи (этим процессом или другим процессом) не будет выполнен до тех пор, пока файл не будет закрыт. Однако даже если этот флаг указан, для доступа к файлу могут потребоваться дополнительные разрешения.
- ReadWrite: разрешает последующее открытие файла для чтения или записи. Если этот флаг не указан, любой запрос на открытие файла для чтения или записи (этим процессом или другим процессом) будет завершаться ошибкой до тех пор, пока файл не будет закрыт. Однако даже если этот флаг указан, для доступа к файлу могут потребоваться дополнительные разрешения.
- Удалить: позволяет последующее удаление файла.
За исключением того, что по понятным причинам я не могу использовать FileStream
- должен использовать StreamReader
.
Как я могу открыть StreamReader
с FileShare.ReadWrite | FileShare.Delete
?