# File lib/ole/storage/base.rb, line 870
      def to_s
        tmp = Types::Variant.dump(Types::VT_LPWSTR, name)
        tmp = tmp[0, 62] if tmp.length > 62
        tmp += 0.chr * 2
        self.name_len = tmp.length
        self.name_utf16 = tmp + 0.chr * (64 - tmp.length)
        # type_id can perhaps be set in the initializer, as its read only now.
        self.type_id = TYPE_MAP.to_a.find { |id, name| @type == name }.first
        # for the case of files, it is assumed that that was handled already
        # note not dir?, so as not to override root's first_block
        self.first_block = Dirent::EOT if type == :dir
        if file?
          # this is messed up. it changes the time stamps regardless of whether the file
          # was actually touched. instead, any open call with a writeable mode, should update
          # the modify time. create time would be set in new.
          if @ole.params[:update_timestamps]
            self.create_time_str = Types::Variant.dump Types::VT_FILETIME, @create_time
            self.modify_time_str = Types::Variant.dump Types::VT_FILETIME, @modify_time
          end
        else
          self.create_time_str = 0.chr * 8
          self.modify_time_str = 0.chr * 8
        end
        to_a.pack PACK
      end