【问题标题】:Does FileStream.Seek() transfer data across the wire?FileStream.Seek() 是否通过网络传输数据?
【发布时间】:2013-02-28 01:41:45
【问题描述】:

我需要通过网络访问一个非常大的文件的随机部分。 (SMB 协议)

  • 在执行 fs.Seek() 时,FileStream.Seek() 是否实际读取数据(在进程中向下复制整个文件)?

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

我的意图是轮询大文件的末尾以查找更改,如果存在更改,则从 .NET 中的书签(固定位置)向前读取。

【问题讨论】:

  • 你找到答案了吗?我有兴趣听到答案。我的猜测是,这将取决于系统。基本上 SMB 提供seek 操作,但这取决于 .NET 和 OS 是否会使用它。在 Windows 上,您可能会得到正确的 seek 行为。

标签: network-programming filestream smb random-access fileserver


【解决方案1】:

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

【讨论】:

  • 这是否适用于常规 .NET 编程,而不是特定于 SQL 集成? (命令行应用程序)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多