'Read from the file.'

def Read(self, length):

    if (not self.IsFile()):
        raise IOError(('%s    is    not    a    file.' % self.pathspec.last.path))
    available = min((self.size - self.offset), length)
    if (available > 0):
        try:
            data = self.fd.read_random(self.offset, available, self.pathspec.last.ntfs_type, self.pathspec.last.ntfs_id)
        except RuntimeError as e:
            raise IOError(e)
        self.offset += len(data)
        return data
    return ''
