0

我需要通过网络访问一个非常大的文件的随机部分。 (SMB协议)FileStream.Seek()是否通过线传输数据?

  • 不FileStream.Seek()实际上读取数据(复制下来的过程中,整个文件)做了fs.Seek(时)?

  • 有什么我可以做,以减少或缓冲这个IO?

我的意图是轮询变化的大文件的末尾,如果它们存在:在.NET书签(固定位置)前朗读。

+0

你找到答案了吗?我很想听到答案。我的猜测是,这将是系统的依赖。 SMB基本上提供'seek'操作,但它取决于.NET和OS是否会使用它。在Windows上,你可能会得到正确的“seek”行为。 – 2017-07-29 21:58:03

回答

0

不会。它只会在流数据类型的本地数据上运行。 FileStream在本地“缓存”并不意味着您正在对某些远程文件系统上的数据执行.seek(),而是将其作为流下载到本地计算机上。有关FileStream over network的更多信息,请参阅此链接(http://technet.microsoft.com/en-us/library/bb933993(v=sql.105).aspx)。

+0

这是否适用于常规.NET编程,而不是特定于SQL集成? (命令行应用程序) – LamonteCristo 2013-02-28 01:47:43