'Copy from VFS to file until no more data or length is reached.
Args:
src_fd: File object to read from.
dest_fd: File object to write to.
length: Number of bytes to write.
Returns:
Bytes written.'

def _Copy(self, src_fd, dest_fd, length):

    written = 0
    while (written < length):
        to_read = min((length - written), self.BLOCK_SIZE)
        data = src_fd.read(to_read)
        if (not data):
            break
        dest_fd.write(data)
        written += len(data)
        self.Progress()
    return written
