'Try to correct the casing of component.
This method is called when we failed to open the component directly. We try
to transform the component into something which is likely to work.
In this implementation, we correct the case of the component until we can
not open the path any more.
Args:
fd: The base fd we will use.
component: The component we should open.
pathspec: The rest of the pathspec object.
progress_callback: A callback to indicate that the open call is still
working but needs more time.
full_pathspec: The full pathspec we are trying to open.
Returns:
A file object.
Raises:
IOError: If nothing could be opened still.'

@classmethod
def Open(cls, fd, component, pathspec=None, progress_callback=None, full_pathspec=None):

    try:
        handler = VFS_HANDLERS[component.pathtype]
    except KeyError:
        raise IOError(('VFS    handler    %d    not    supported.' % component.pathtype))
    if (component.path_options == rdf_paths.PathSpec.Options.CASE_LITERAL):
        return handler(base_fd=fd, pathspec=component)
    path_components = client_utils.LocalPathToCanonicalPath(component.path)
    path_components = (['/'] + filter(None, path_components.split('/')))
    for (i, path_component) in enumerate(path_components):
        try:
            if fd:
                new_pathspec = fd.MatchBestComponentName(path_component)
            else:
                new_pathspec = component
                new_pathspec.path = path_component
            try:
                handler = VFS_HANDLERS[new_pathspec.pathtype]
            except KeyError:
                raise IOError(('VFS    handler    %d    not    supported.' % new_pathspec.pathtype))
            fd = handler(base_fd=fd, pathspec=new_pathspec, full_pathspec=full_pathspec, progress_callback=progress_callback)
        except IOError:
            if (i <= 1):
                raise IOError('File    not    found')
            pathspec.Insert(0, path=utils.JoinPath(*path_components[i:]), pathtype=rdf_paths.PathSpec.PathType.TSK)
            break
    return fd
