@@ -139,6 +139,7 @@ import System.PosixCompat.Types
139
139
import System.Win32.File hiding (getFileType )
140
140
import System.Win32.HardLink (createHardLink )
141
141
import System.Win32.Time (FILETIME (.. ), getFileTime , setFileTime )
142
+ import System.Win32.Types (HANDLE )
142
143
143
144
import System.PosixCompat.Internal.Time (
144
145
getClockTime , clockTimeToEpochTime
@@ -452,7 +453,7 @@ setFileTimes :: FilePath -> EpochTime -> EpochTime -> IO ()
452
453
setFileTimes file atime mtime =
453
454
bracket openFileHandle closeHandle $ \ handle -> do
454
455
(creationTime, _, _) <- getFileTime handle
455
- setFileTime
456
+ setFileTimeCompat
456
457
handle
457
458
creationTime
458
459
(epochTimeToFileTime atime)
@@ -472,6 +473,14 @@ setFileTimes file atime mtime =
472
473
ll :: Int64
473
474
ll = fromIntegral t * 10000000 + 116444736000000000
474
475
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
+
475
484
touchFile :: FilePath -> IO ()
476
485
touchFile name =
477
486
do t <- liftM clockTimeToEpochTime getClockTime
0 commit comments