@@ -139,6 +139,7 @@ import System.PosixCompat.Types
139139import System.Win32.File hiding (getFileType )
140140import System.Win32.HardLink (createHardLink )
141141import System.Win32.Time (FILETIME (.. ), getFileTime , setFileTime )
142+ import System.Win32.Types (HANDLE )
142143
143144import System.PosixCompat.Internal.Time (
144145 getClockTime , clockTimeToEpochTime
@@ -452,7 +453,7 @@ setFileTimes :: FilePath -> EpochTime -> EpochTime -> IO ()
452453setFileTimes file atime mtime =
453454 bracket openFileHandle closeHandle $ \ handle -> do
454455 (creationTime, _, _) <- getFileTime handle
455- setFileTime
456+ setFileTimeCompat
456457 handle
457458 creationTime
458459 (epochTimeToFileTime atime)
@@ -472,6 +473,14 @@ setFileTimes file atime mtime =
472473 ll :: Int64
473474 ll = fromIntegral t * 10000000 + 116444736000000000
474475
476+ setFileTimeCompat :: HANDLE -> FILETIME -> FILETIME -> FILETIME -> IO ()
477+ setFileTimeCompat h crt acc wrt =
478+ #if MIN_VERSION_Win32(2, 12, 0)
479+ setFileTime h (Just crt) (Just acc) (Just wrt)
480+ #else
481+ setFileTime h crt acc wrt
482+ #endif
483+
475484touchFile :: FilePath -> IO ()
476485touchFile name =
477486 do t <- liftM clockTimeToEpochTime getClockTime
0 commit comments