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

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


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

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


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