'Checks if the target file should be deleted if it already exists'

def delete_file(self, path, prefixed_path, source_storage):

    if self.storage.exists(prefixed_path):
        try:
            target_last_modified = self.storage.modified_time(prefixed_path)
        except (OSError, NotImplementedError, AttributeError):
            pass
        else:
            try:
                source_last_modified = source_storage.modified_time(path)
            except (OSError, NotImplementedError, AttributeError):
                pass
            else:
                if self.local:
                    full_path = self.storage.path(prefixed_path)
                else:
                    full_path = None
                if (target_last_modified >= source_last_modified):
                    if (not ((self.symlink and full_path and (not os.path.islink(full_path))) or ((not self.symlink) and full_path and os.path.islink(full_path)))):
                        if (prefixed_path not in self.unmodified_files):
                            self.unmodified_files.append(prefixed_path)
                        self.log((u"Skipping    '%s'    (not    modified)" % path))
                        return False
        if self.dry_run:
            self.log((u"Pretending    to    delete    '%s'" % path))
        else:
            self.log((u"Deleting    '%s'" % path))
            self.storage.delete(prefixed_path)
    return True
