code: def action_rename(self, courseid, taskid, path, new_path):
          
          # normalize
          path = path.strip()
          new_path = new_path.strip()
          if not path.startswith("/"):
              path = "/" + path
          if not new_path.startswith("/"):
              new_path = "/" + new_path
  
          old_path = self.verify_path(courseid, taskid, path)
          if old_path is None:
              return self.show_tab_file(courseid, taskid, _("Internal error"))
  
          wanted_path = self.verify_path(courseid, taskid, new_path, True)
          if wanted_path is None:
              return self.show_tab_file(courseid, taskid, _("Invalid new path"))
  
          try:
              self.task_factory.get_task_fs(courseid, taskid).move(old_path, wanted_path)
              return self.show_tab_file(courseid, taskid)
          except:
              return self.show_tab_file(courseid, taskid, _("An error occurred while moving the files"))
docs: Delete a file or a directory