Task

Verify that a file called     input.txt     and   a directory called     docs     exist.



This should be done twice:  

   once for the current working directory,   and
   once for a file and a directory in the filesystem root.


Optional criteria (May 2015):   verify it works with:

   zero-length files
   an unusual filename:     `Abdu'l-Bahá.txt  


MODULE FileTest EXPORTS Main;
 
IMPORT IO, Fmt, FS, File, OSError, Pathname;
 
PROCEDURE FileExists(file: Pathname.T): BOOLEAN =
  VAR status: File.Status;
  BEGIN
    TRY
      status := FS.Status(file);
      RETURN TRUE;
    EXCEPT
    | OSError.E => RETURN FALSE;
    END;
  END FileExists;
 
BEGIN
  IO.Put(Fmt.Bool(FileExists("input.txt")) & "\n");
  IO.Put(Fmt.Bool(FileExists("/input.txt")) & "\n");
  IO.Put(Fmt.Bool(FileExists("docs/")) & "\n");
  IO.Put(Fmt.Bool(FileExists("/docs")) & "\n");
END FileTest.