【问题标题】:Read as need, how to read first 256 bytes from online large file without downloading?按需阅读,如何在不下载的情况下从在线大文件中读取前256字节?
【发布时间】:2012-08-16 10:07:46
【问题描述】:

我只需要从映射的 WebDAV 驱动器中读取大文件中的前 256 B。

我打开文件

h_second = CreateFileA(second_server, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_FLAG_SEQUENTIAL_SCAN, NULL);

但它首先会下载整个文件,然后我才能阅读它。我想要一些东西,它只下载一小部分文件,我读了。

谁能帮帮我?

【问题讨论】:

  • 你试过fopen()然后fread()吗?
  • @alk:这些是 C 库函数。 fread 的 Windows (MSVC) 实现将为您调用 CreateFileA,所以这不会产生影响。
  • 当我调用 CreateFileA 或 fopen 时,它会下载第一个整个文件,然后我可以使用 fread 或 ReadFile 读取...

标签: c winapi file-io webdav


【解决方案1】:

WebDAV 是 HTTP 的扩展,HTTP 已经有了range request.

【讨论】:

  • 如何更改该范围?与 WebClient 服务无关?因为我使用网络使用映射驱动器..
  • 我认为 MSalters 试图说明的是,您必须使用 HTTP 直接访问 WebDAV 服务器,例如使用 WinInet 或 WinHTTP API,而不是使用映射驱动器。
  • 好的,谢谢我使用 WinHTTP 做到了,发送请求和接收需要 256 字节
【解决方案2】:

WebDAV 是 HTTP 的扩展,HTTP 已经有范围请求。 我认为解决这个问题并不重要。

包括 abc.def.c

【讨论】:

    猜你喜欢
    • 2015-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-05
    • 2013-06-22
    • 2013-11-29
    相关资源
    最近更新 更多