Click or drag to resize

IItemContentAsyncGetReadStreamAsync Method (Int64, Int64, String)

IT Hit WebDAV Classes Reference
Loads part of the content of the file from WebDAV server using eTag to ensure the content is up-to-date.

Namespace:  ITHit.WebDAV.Client
Assembly:  ITHit.WebDAV.Client (in ITHit.WebDAV.Client.dll) Version: 2.0.420.0
Task<ContentStream> GetReadStreamAsync(
	long startIndex,
	long count,
	string eTag


Type: SystemInt64
Start position to retrieve count number of bytes from.
Type: SystemInt64
Number of bytes to retrieve.
Type: SystemString
The ETag that will be passed in the If-Range header.

Return Value

Type: TaskContentStream
Stream to read file content.
NotFoundExceptionThis resource doesn't exist on the server.
WebDavHttpExceptionServer returned unknown error.
WebDavExceptionUnexpected error occurred.

Loads part of the content of the file from WebDAV server if it's content was not changed. If the content was modified the complete new content is returned.

This sample shows how to use the GetReadStreamAsync(Int64, Int64, String) method. First 1024 bytes of server file are already saved to local file. Code tries to download the rest of the file content.
string license = "<?xml version='1.0' encoding='utf...
WebDavSessionAsync session = new WebDavSessionAsync(license);
session.Credentials = new NetworkCredential("User1", "pwd");
IFolderAsync folder = session.OpenFolder(new Uri("http://server:8080/Sales"));
FileInfo file = new FileInfo("C:\\Temp\\Products.cff");
IFileAsync file = folder.GetResource(file.Name);

string etag = file.Etag;
int bufSize = 1048576; // 1Mb
byte[] buffer = new byte[bufSize];
int totalWritten = 10;

using (Stream stream = file.GetReadStream(totalWritten, resource.ContentLength, etag, out contentModified))
    if (contentModified)
        totalWritten = 0; // entire file content is returned
    using (FileStream fs = file.OpenWrite())
        fs.Seek(totalWritten, SeekOrigin.Begin);
        int bytesRead;
        while ((bytesRead = stream.Read(buffer, 0, bufSize)) > 0)
            fs.Write(buffer, 0, bytesRead);
See Also