Пример #1
0
        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);
        }
Пример #2
0
 public byte[] GetFileChunk(string databaseName, Guid id, long pos, int count)
 {
     return(_api.GetFileChunk(_database, id, pos, count));
 }