2012-08-16 5 views
7

マップされたWebDAVドライブから、大きなファイルから最初の256Bを読み取る必要があります。オンラインの大容量ファイルからダウンロードせずに最初の256バイトを読み込む方法を、必要に応じて読んでください。

私は

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

でファイルを開きますが最初のダウンロードファイル全体、その後、私はそれを読むことができます。そして、私は何かをしたい、それはファイルのほんの一部をダウンロードし、私はそれを読む。

誰でも手伝ってもらえますか?

+0

'fopen()'に続いて 'fread()'を試しましたか? – alk

+1

@alk:これはCライブラリ関数です。 Windows(MSVC)の 'fread'の実装はあなたのために' CreateFileA'を呼び出すので、それは違いはありません。 – MSalters

+0

私はCreateFileAを呼び出すかfopenすると最初の全体ファイルをダウンロードした後、freadまたはReadFileを使用して読み込むことができます。 – FrUh

答えて

2

WebDAVはHTTPの拡張であり、HTTPは既にrange request.

+0

どのようにその範囲を変更できますか? WebClientサービスの問題ではありませんか? beacause私はマッピングドライブのための純粋な使用を使用しています。 – FrUh

+0

私は、マップされたドライブを使用するのではなく、WinInetやWinHTTP APIなど、HTTPを使ってWebDAVサーバーに直接アクセスする必要があると主張しています。 –

+0

私はWinHTTPを使用して、要求を送信し、必要な256バイトを受信しました – FrUh

1

WebDAVはHTTPの拡張であり、HTTPは既に範囲要求を有しています。 私はこの問題を解決することが重要だとは思わない。

abc.def.c

関連する問題