5

我写了这个代码片段来读取一个可能被压缩的文件:

import Codec.Compression.GZip
import IO -- using IO.try

read file = do
  let f = L.readFile file
  let c = fmap decompress $ f

  unzipped <- try c

  case unzipped of
    Right b -> return b
    Left  _ -> f

它编译得很好,但似乎这不是处理未压缩文件的有效方法。在压缩文件上运行代码效果很好,但未压缩文件失败并出现异常:

*** Exception: Codec.Compression.Zlib: incorrect header check

关于如何使这成为可能的任何想法?

4

2 回答 2

4
于 2012-04-06T15:59:15.247 回答
2

你可能想看看spoonNothing ,如果抛出异常,你可以得到它。

于 2012-04-06T13:40:43.117 回答