public string Download(INFile inFile) { var filePath = GetTempPath(inFile.Modified.ToFileTimeUtc() + "_" + inFile.Id); if (File.Exists(filePath)) { File.Delete(filePath); } using (BinaryWriter file = new BinaryWriter(File.OpenWrite(filePath))) { var filePos = _fileArchiveApi.GetFilePosition(inFile.Id); long fileSize = inFile.Size; while (fileSize > 0) { int chunkSize = fileSize > CHUNK_SIZE ? CHUNK_SIZE : (int)fileSize; var data = _fileArchiveApi.GetFileChunk(inFile.Id, filePos + inFile.Size - fileSize, chunkSize); file.Write(data); fileSize -= chunkSize; } file.Close(); } return(filePath); }
public byte[] GetFileChunk(string databaseName, Guid id, long pos, int count) { return(_api.GetFileChunk(_database, id, pos, count)); }