写入文件,但如果它与DevIL和REPA一起存在则覆盖它

时间:2017-07-31 21:46:39

标签: haskell devil repa

我正在使用DevIL库来读写图像。问题是,如果文件已经存在,我想覆盖文件。

这是我的代码:

(RGB v) <- runIL $ readImage "/foo/foo.png"
let rotated = (computeS $ batman v) :: Array F DIM3 Word8
runIL $ writeImage ("/foo/foo.png") (RGB rotated)

我怎样才能做到这一点?我可以这样做,还是我必须考虑另一种方式?它是OS的一部分吗?

我使用该文件作为临时图像,直到用户决定保存它(经过一些更改,如旋转,扩展等)。

1 个答案:

答案 0 :(得分:0)

如果图书馆不允许直接替换现有文件,您可以检查该文件是否与doesFileExist一起存在,并在保存新文件之前将其删除。

replace = do    
  let fn = "path/to/image/file/..."
  exists <- doesFileExist fn
  when exists $ removeFile fn
  runIL $ writeImage fn (RGB rotated)