0

Мне нужно получить доступ к случайным частям очень большого файла по сети. (Протокол SMB)Ли FileStream.Seek() передает данные по проводу?

  • ли FileStream.Seek() на самом деле читать данные (копируя весь файл в процессе) при выполнении fs.Seek()?

  • Есть ли что-нибудь, что я могу сделать для уменьшения или буферизации этого ввода-вывода?

Мое намерение опросить конец большого файла для изменений, и если они существуют, читайте вперед из закладки (фиксированной позиции) в .NET.

+0

Вы нашли ответ? Мне интересно услышать ответ. Я предполагаю, что это будет зависящим от системы. В основном SMB обеспечивает операцию 'seek', но зависит от того, использует она .NET и ОС или нет. В Windows вы можете получить правильное поведение 'seek'. –

ответ

0

Нет. Он будет работать только с локальными данными в потоковом типе данных. То, что FileStream «кэшируется» локально, не означает, что вы выполняете команду .seek() на данных о какой-либо удаленной файловой системе, но вместо этого загружаете ее как поток на свой локальный компьютер. См. Эту ссылку (http://technet.microsoft.com/en-us/library/bb933993(v=sql.105).aspx) для получения дополнительной информации о FileStream по сети.

+0

Связано ли это с обычным .NET-программированием, а не с интеграцией SQL? (Приложение командной строки) – LamonteCristo