anchor.diff:          (unless (= #x0F (aref directory (+ 11 i)))
             (return i))))))
   
  -(defmacro do-files ((var) directory &body body)
  +(defmacro do-files ((var) directory finally &body body)
     `(do ((,var (next-file ,directory 0) (next-file ,directory (+ 32 ,var))))
          ((null ,var)
  -        t)
  +        ,finally)
        ,@body))
   
   (defun read-name (directory offset)
  
positive.code:                                          (fat host))
          :for directory :in (rest (pathname-directory pathname))
          :do (do-files (start) cluster-data
                (when (string= directory (read-file-name cluster-data start))
                  (setf cluster-sector (first-sector-of-cluster fat32 (read-first-cluster cluster-data start))
                        cluster-data (read-file fat32
  
negative.code:          (fat32 (fat32-structure host))
           (fat (fat host)))
      (multiple-value-bind (directory cluster-sector start) (find-file host path)
        (assert start (start) "File/directory not found. ~s" path)
        (remove-file directory start disk cluster-sector fat32 fat))))
  
  (defmethod expunge-directory-using-host ((host fat32-host) path &key)
  