我尝试打开加密的 zip 文件,然后再次写入。不幸的是,我不断收到“读取错误”并且不明白为什么。我发现 LibZip for Haskell 的文档很难遵循,因此对于它如何工作的任何解释,我将不胜感激。这是我的代码:
writeZip :: FilePath -> [(FilePath, ZipSource)] -> IO ()
writeZip zipName zipContent = withArchive [CreateFlag] zipName $ do
mapM_ (uncurry addFile) zipContent
readEncryptedZip :: FilePath -> Password -> IO [(FilePath, ZipSource)]
readEncryptedZip zipName passwd = withEncryptedArchive [CheckConsFlag]
passwd zipName $ do
nn <- fileNames []
ss <- mapM (\n -> sourceFile n 0 (-1)) nn
return $ zip nn ss
和主模块:
main = readEncryptedZip "protected_file2.zip" "ll" >>= writeZip "unprotected.zip"
使用 Codec.Archive.LibZip,ghci 版本 8.0.1,MacOs Sierra 10.12
提前致谢!