module System.Directory.NonExistent where import System.Directory import System.FilePath -- | create non existent directory appending a number to the end of the name createNonExistentDirectory :: FilePath -> String -> IO FilePath createNonExistentDirectory currentDir dirname = do newDir <- generateNonExistentDirectory dirname Nothing createDirectory newDir return newDir where generateNonExistentDirectory :: FilePath -> Maybe Int -> IO FilePath generateNonExistentDirectory d suffix = let fullDirName = currentDir d ++ maybe "" show suffix in do exist <- doesDirectoryExist fullDirName if exist then generateNonExistentDirectory d $ return $ maybe 1 (+ 1) suffix else return fullDirName