2012-08-16 13 views
7

Ho bisogno di leggere solo i primi 256 B da file di grandi dimensioni, dal drive WebDAV mappato.Leggi come necessario, come leggere prima 256 byte dal grande file online senza scaricare?

apro file con

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

ma è arrivato prima di download dell'intero file, e dopo che posso leggerlo. E voglio qualcosa, che scarica solo una piccola parte del file e l'ho letto.

Qualcuno può aiutarmi?

+0

Hai provato 'fopen()' seguito da 'fread()'? – alk

+1

@alk: Queste sono le funzioni della libreria C. L'implementazione di Windows (MSVC) di 'fread' chiamerà' CreateFileA' per te, quindi non farebbe differenza. – MSalters

+0

Quando chiamo CreateFileA o fopen scarica prima tutto il file, e dopo posso leggere usando fread o ReadFile ... – FrUh

risposta

2

WebDAV è un'estensione di HTTP e HTTP ha già un WebDAV range request.

+0

come posso cambiare quell'intervallo? Non è importante il servizio WebClient? sto usando la rete per mappare l'unità .. – FrUh

+0

Penso che il punto che MSalters sta cercando di fare sia che tu debba accedere al server WebDAV direttamente usando HTTP, come con l'API WinInet o WinHTTP, invece di usare un'unità mappata . –

+0

Ok, grazie l'ho fatto usando WinHTTP, Invia richiesta e ricevo 256 byte richiesti – FrUh

1

è un'estensione di HTTP e HTTP ha già una richiesta di intervallo. Non penso sia importante risolvere questo problema.

include abc.def.c

Problemi correlati