diff --git a/hscaffold.cabal b/hscaffold.cabal
--- a/hscaffold.cabal
+++ b/hscaffold.cabal
@@ -3,7 +3,7 @@
 -- see: https://github.com/sol/hpack
 
 name:           hscaffold
-version:        0.4.3.0
+version:        0.4.4.0
 synopsis:       Very simple file/directory structure scaffolding writer monad EDSL
 description:     See our README on GitHub at <https://github.com/yamadapc/hscaffold> 
 homepage:       https://github.com/yamadapc/hscaffold#readme
diff --git a/src/Hscaffold/Interpreter/IO.hs b/src/Hscaffold/Interpreter/IO.hs
--- a/src/Hscaffold/Interpreter/IO.hs
+++ b/src/Hscaffold/Interpreter/IO.hs
@@ -7,6 +7,7 @@
 import           Control.Monad.Writer
 import qualified Data.Text.IO                 as Text
 import           System.Directory
+import           System.FilePath
 import           System.IO.Temp
 -- TODO - Disable this on Windows
 import           System.Posix.Files
@@ -43,8 +44,10 @@
     setPermissions (mkActionPath root fp) perms
 runAction root (Link fp1 fp2) =
     createSymbolicLink (mkActionPath root fp1) (mkActionPath root fp2)
-runAction root (File fp txt) =
-    Text.writeFile (mkActionPath root fp) txt
+runAction root (File fp txt) = do
+    let fp' = mkActionPath root fp
+    createDirectoryIfMissing True (takeDirectory fp')
+    Text.writeFile fp' txt
 runAction root (Directory fp nested) = do
     createDirectoryIfMissing True (mkActionPath root fp)
     mapM_ (runAction (mkActionPath root fp)) nested
