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

Write to file, but overwrite it if it exists with DevIL and 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?

的东西

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

如果库不允许您直接替换现有文件,您可以使用doesFileExist检查文件是否存在并在保存新文件之前将其删除。

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