def get_record(self, **kwargs):
        '''
        Get the directory record for a particular path.
        Parameters:
         iso_path - The absolute path on the ISO9660 filesystem to get the
                    record for.
         rr_path - The absolute path on the Rock Ridge filesystem to get the
                   record for.
         joliet_path - The absolute path on the Joliet filesystem to get the
                       record for.
         udf_path - The absolute path on the UDF filesystem to get the record
                    for.
        Returns:
         An object that represents the path.  This may be a dr.DirectoryRecord
         object (in the cases of iso_path, rr_path, or joliet_path), or a
         udf.UDFFileEntry object (in the case of udf_path).
        '''
        if not self._initialized:
            raise pycdlibexception.PyCdlibInvalidInput('This object is not yet initialized; call either open() or new() to create an ISO')
        num_paths = 0
        for key in kwargs:
            if key in ['joliet_path', 'rr_path', 'iso_path', 'udf_path']:
                if kwargs[key] is not None:
                    num_paths += 1
            else:
                raise pycdlibexception.PyCdlibInvalidInput("Invalid keyword, must be one of 'iso_path', 'rr_path', 'joliet_path', or 'udf_path'")
        if num_paths != 1:
            raise pycdlibexception.PyCdlibInvalidInput("Must specify one, and only one of 'iso_path', 'rr_path', 'joliet_path', or 'udf_path'")
        if 'joliet_path' in kwargs:
            return self._get_entry(None, None, self._normalize_joliet_path(kwargs['joliet_path']))
        if 'rr_path' in kwargs:
            return self._get_entry(None, utils.normpath(kwargs['rr_path']), None)
        if 'udf_path' in kwargs:
            return self._get_udf_entry(kwargs['udf_path'])
        return self._get_entry(utils.normpath(kwargs['iso_path']), None, None)