code: def remove(self, path):
          
  
          entry = self.find(path)
  
          if not entry:
              raise ValueError("%s does not exists" % path)
  
          if entry.type == 'root storage':
              raise ValueError("can no remove root entry")
  
          if entry.type == "storage" and not entry.child_id is None:
              raise ValueError("storage contains children")
  
          entry.pop()
  
          # remove stream data
          if entry.type == "stream":
              self.free_fat_chain(entry.sector_id, entry.byte_size < self.min_stream_max_size)
  
          self.free_dir_entry(entry)
docs: Removes both streams and storage DirEntry types from file.
          storage type entries need to be empty dirs.