2012-08-16 10 views
7

Necesito leer solo los primeros 256 B del archivo grande, del disco WebDAV mapeado.Lea lo que necesite, ¿cómo leer los primeros 256 bytes del archivo grande en línea sin descargar?

puedo abrir archivo con

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

pero vale primeras descargas de archivos en conjunto, y después de eso puedo leerlo. Y quiero algo, eso descarga solo una pequeña parte del archivo y lo leo.

¿Alguien me puede ayudar?

+0

¿Ha intentado 'fopen()' seguido de 'fread()'? – alk

+1

@alk: Esas son las funciones de la biblioteca C. La implementación de Windows (MSVC) de 'fread' llamará' CreateFileA' por usted, por lo que no haría la diferencia. – MSalters

+0

Cuando llamo CreateFileA o fopen, descargo el primer archivo completo, y luego puedo leer usando fread o ReadFile ... – FrUh

Respuesta

2

WebDAV es una extensión de HTTP, y HTTP ya tiene un WebDAV range request.

+0

¿cómo puedo cambiar ese rango? ¿No se trata de Servicio WebClient? Porque estoy usando el uso de red para mapear unidad ... – FrUh

+0

Creo que el punto que MSalters intenta hacer es que tendrías que acceder al servidor WebDAV directamente usando HTTP, como con la API de WinInet o WinHTTP, en lugar de usar una unidad mapeada . –

+0

Ok, gracias lo hice usando WinHTTP, solicitud de envío y recibir 256 bytes requeridos – FrUh

1

es una extensión para HTTP y HTTP ya tiene una solicitud gama. No creo que sea importante resolver este problema.

incluye abc.def.c

Cuestiones relacionadas