# File lib/ole/storage/file_system.rb, line 349
      def rmdir path
        dirent = dirent_from_path path
        raise Errno::ENOTEMPTY, path unless dirent.children.empty?

        # now delete it, how to do that? the canonical representation that is
        # maintained is the root tree, and the children array. we must remove it
        # from the children array.
        # we need the parent then. this sucks but anyway:
        # we need to split the path. but before we can do that, we need
        # to expand it first. eg. say we need the parent to unlink
        # a/b/../c. the parent should be a, not a/b/.., or a/b.
        parent_path, basename = File.split @ole.file.expand_path(path)
        # this shouldn't be able to fail if the above didn't
        parent = dirent_from_path parent_path
        # note that the way this currently works, on save and repack time this will get
        # reflected. to work properly, ie to make a difference now it would have to re-write
        # the dirent. i think that Ole::Storage#close will handle that. and maybe include a
        # #repack.
        parent.children.delete dirent
        0 # hmmm. as per ::Dir ?
      end