# File lib/ole/storage/base.rb, line 930
      def self.copy src, dst
        # copies the contents of src to dst. must be the same type. this will throw an
        # error on copying to root. maybe this will recurse too much for big documents??
        raise ArgumentError, 'differing types' if src.file? and !dst.file?
        dst.name = src.name
        if src.dir?
          src.children.each do |src_child|
            dst_child = Dirent.new dst.ole, :type => src_child.type
            dst << dst_child
            Dirent.copy src_child, dst_child
          end
        else
          src.open do |src_io|
            dst.open { |dst_io| IO.copy src_io, dst_io }
          end
        end
      end