Я пытаюсь найти самый простой способ для этого, но не могу найти какой-либо. Единственный способ - реализовать нашу собственную функцию в зависимости от ваших потребностей. К счастью, здесь используются только библиотеки System.Directory
и System.FilePath.Posix
.
import Prelude
import System.Directory (createDirectoryIfMissing)
import System.FilePath.Posix (takeDirectory)
main :: IO ()
main = createAndWriteFile "foo/bar/baz/quux.txt" "something"
createAndWriteFile :: FilePath -> String -> IO ()
createAndWriteFile path content = do
createDirectoryIfMissing True $ takeDirectory path
writeFile path content
Ниже приведен результат, основанный на приведенном выше коде.
foo
└── bar
└── baz
└── quux.txt
Вы можете редактировать код, однако выкак.