code: def GetFileObject(self, data_stream_name=''):
      
      data_stream_names = [
          data_stream.name for data_stream in self._GetDataStreams()]
      if data_stream_name and data_stream_name not in data_stream_names:
        return None
  
      path_spec = copy.deepcopy(self.path_spec)
      if data_stream_name:
        # For HFS DECOMP fork name is exposed however libtsk 4.6.0 seems to handle
        # these differently when opened and the correct behavior seems to be
        # treating this as the default (nameless) fork instead. For context libtsk
        # 4.5.0 is unable to read the data steam and yields an error.
        if self._file_system.IsHFS() and data_stream_name == 'DECOMP':
          data_stream_name = ''
  
        setattr(path_spec, 'data_stream', data_stream_name)
  
      return resolver.Resolver.OpenFileObject(
          path_spec, resolver_context=self._resolver_context)
docs: Retrieves the file-like object.
  
      Args:
        data_stream_name (Optional[str]): data stream name, where an empty
            string represents the default data stream.
  
      Returns:
        TSKFileIO: file-like object or None.