--- Library for accessing the directory structure of the --- underlying operating system. --- --- @author Michael Hanus --- @version March 2008 module Directory(doesFileExist,doesDirectoryExist,fileSize, getModificationTime, getCurrentDirectory,setCurrentDirectory, getDirectoryContents,createDirectory, removeFile,removeDirectory,renameFile,renameDirectory) where import Time(ClockTime) --- Returns true if the argument is the name of an existing file. doesFileExist :: String -> IO Bool doesFileExist fname = prim_doesFileExist $## fname prim_doesFileExist :: String -> IO Bool prim_doesFileExist external --- Returns true if the argument is the name of an existing directory. doesDirectoryExist :: String -> IO Bool doesDirectoryExist dir = prim_doesDirectoryExist $## dir prim_doesDirectoryExist :: String -> IO Bool prim_doesDirectoryExist external --- Returns the size of the file. fileSize :: String -> IO Int fileSize fname = prim_fileSize $## fname prim_fileSize :: String -> IO Int prim_fileSize external --- Returns the modification time of the file. getModificationTime :: String -> IO ClockTime getModificationTime fname = prim_getModificationTime $## fname prim_getModificationTime :: String -> IO ClockTime prim_getModificationTime external --- Returns the current working directory. getCurrentDirectory :: IO String getCurrentDirectory external --- Sets the current working directory. setCurrentDirectory :: String -> IO () setCurrentDirectory dir = prim_setCurrentDirectory $## dir prim_setCurrentDirectory :: String -> IO () prim_setCurrentDirectory external --- Returns the list of all entries in a directory. getDirectoryContents :: String -> IO [String] getDirectoryContents dir = prim_getDirectoryContents $## dir prim_getDirectoryContents :: String -> IO [String] prim_getDirectoryContents external --- Creates a new directory with the given name. createDirectory :: String -> IO () createDirectory dir = prim_createDirectory $## dir prim_createDirectory :: String -> IO () prim_createDirectory external --- Deletes a file from the file system. removeFile :: String -> IO () removeFile file = prim_removeFile $## file prim_removeFile :: String -> IO () prim_removeFile external --- Deletes a directory from the file system. removeDirectory :: String -> IO () removeDirectory dir = prim_removeDirectory $## dir prim_removeDirectory :: String -> IO () prim_removeDirectory external --- Renames a file. renameFile :: String -> String -> IO () renameFile file1 file2 = (prim_renameFile $## file1) $## file2 prim_renameFile :: String -> String -> IO () prim_renameFile external --- Renames a directory. renameDirectory :: String -> String -> IO () renameDirectory dir1 dir2 = (prim_renameDirectory $## dir1) $## dir2 prim_renameDirectory :: String -> String -> IO () prim_renameDirectory external