使用zip-conduit列出zip存档

时间:2014-08-25 15:05:56

标签: haskell zip zip-conduit

使用zip-conduit库,我想列出ZIP存档中的条目。我想每行只打印文件名 - 类似于unzip -l,但没有任何其他信息。

注意:此问题是使用Q& A风格回答的,因此故意不会展示任何研究成果!

1 个答案:

答案 0 :(得分:2)

您可以使用entryNames功能。通过修改the ZIP extraction example,我们可以打印名称而不是提取。

以下示例程序从第一个命令行参数中获取ZIP文件名,并使用mapM_ putStrLn打印它们:

import Codec.Archive.Zip (withArchive, entryNames)
import System.Environment (getArgs)

main = do
    -- ZIP file name: First commandline arg
    zipPath:_ <- getArgs
    names <- withArchive zipPath $ entryNames
    mapM_ putStrLn names