powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / File.ReadAllBytes требует монопольный доступ к файлу?
8 сообщений из 8, страница 1 из 1
File.ReadAllBytes требует монопольный доступ к файлу?
    #39350817
basil-77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Разве метод File.ReadAllBytes(string) требует эксклюзивный доступ к файлу?
Кто в курсе, подскажите плз. В мсдн ничего об этом нет.

При попытке выполнить строку
Код: c#
1.
byte[] file = File.ReadAllBytes(xlsFileName);


вываливается с ошибкой "Индекс за пределами диапазона"....
Такое происходит только при попытке обращения к уже открытому файлу.
...
Рейтинг: 0 / 0
File.ReadAllBytes требует монопольный доступ к файлу?
    #39350862
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
basil-77Кто в курсе, подскажите плз. В мсдн ничего об этом нет.
Значит информация в MSDN неполна.
откройте FileStream и прочитайте файл, делов то.
...
Рейтинг: 0 / 0
File.ReadAllBytes требует монопольный доступ к файлу?
    #39350897
basil-77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропилделов то
дык это понятно) сделано уже)
просто сам вопрос был интересен.
...
Рейтинг: 0 / 0
File.ReadAllBytes требует монопольный доступ к файлу?
    #39350900
VAlexey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
basil-77,

ReadAllBytes не требует монопольного доступа: http://www.dotnetframework.org/default.aspx/4@0/4@0/DEVDIV_TFS/Dev10/Releases/RTMRel/ndp/clr/src/BCL/System/IO/File@cs/1305376/File@cs]http://www.dotnetframework.org/default.aspx/4@0/4@0/DEVDIV_TFS/Dev10/Releases/RTMRel/ndp/clr/src/BCL/System/IO/File@cs/1305376/File@cs
Код: c#
1.
 using(FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.Read)) 
...
Рейтинг: 0 / 0
File.ReadAllBytes требует монопольный доступ к файлу?
    #39350909
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VAlexey,

незачёт, топикстартера спасло бы FileShare.ReadWrite
...
Рейтинг: 0 / 0
File.ReadAllBytes требует монопольный доступ к файлу?
    #39351093
VAlexey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Изопропил,
незачет :)
Если бы было FileShare.ReadWrite, то как раз проблема ТС стала бы понятной: пока его процесс читал, другой процесс перезаписал файл.
Если бы файл был открыт на запись другим процессом, то ошибка бы была System.IO.IOException.
Другие процессы открыть на запись тоже не могли, благодаря FileShare.Read.
Мне кажется, что ТС что-то недоговаривает...
...
Рейтинг: 0 / 0
File.ReadAllBytes требует монопольный доступ к файлу?
    #39351100
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VAlexeyЕсли бы было FileShare.ReadWrite, то как раз проблема ТС стала бы понятной: пока его процесс читал, другой процесс перезаписал файл.
тебя здравый смысл подвёл в интерпретации значений FileShare
...
Рейтинг: 0 / 0
File.ReadAllBytes требует монопольный доступ к файлу?
    #39352426
basil-77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VAlexeyМне кажется, что ТС что-то недоговаривает...
ТС все договаривает )
Ошибка с индексом вместо IOException самого смутила.
Открытие файла для определенных нужд и ReadAll Bytes были реализовано в разных модулях, причем ReadAllBytes вообще вызывался из модуля, запускаемого в отдельном потоке.
Перенес все в один модуль - ошибка сменилась на IOExeption. В порядке эксперимента, закрытие файла (книга excel) перед вызовом ReadAllBytes ошибку устранила.
Собстно, вопрос более не актуален.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / File.ReadAllBytes требует монопольный доступ к файлу?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]