recursivePrint p (x:xs) f = do
    let path = (p ++ "/" ++ x)
    status <- getFileStatus path
    if (isDirectory status && x /= "." && x /= "..")
        then do
            printAllFiles path f
            recursivePrint p xs f
        else do recursivePrint p xs f
recursivePrint p (x:xs) f = do
    let path = (p ++ "/" ++ x)
    status <- getFileStatus path
    if (isDirectory status && x /= "." && x /= "..")
        then do
            printAllFiles path f
            recursivePrint p xs f
        else do recursivePrint p xs f
recursivePrint p (x:xs) f = do
    let path = (p ++ "/" ++ x)
    status <- getFileStatus path
    if (isDirectory status && x /= "." && x /= "..")
        then do
            printAllFiles path f
            recursivePrint p xs f
        else do recursivePrint p xs f