我需要在过滤我想要包含的文件列表后创建一个Zip存档.我希望该模块能够在Windows和Linux中运行.
由于我需要过滤文件列表,我真的不想使用外部程序.我不想引入外部依赖项,所以我可以将脚本编译成Windows上的单个可执行文件(使用ActiveState PDK).
我已经尝试过了什么
到目前为止,我已经在CPAN上使用了Archive :: Zip,但它在Windows机器上有一个使用非ASCII文件名的主要错误:文件名在存档中被破坏,因为它们没有被转换为unicode.
有一个错误报告,但它已经超过10个月没有更新,在模块文档中,开发人员是无益的("修复你的计算机或摆脱Windows"类型).
更新:
感谢brian和Alan Haggai Alavi的澄清,似乎已经有足够的爱Archive::Zip
来尽快获得这些错误,并最终在Windows中拥有一个功能齐全的zip模块.
尽管模块文档说明了一些关于Windows的愚蠢内容,但目前的维护者是Adam Kennedy,就是那个为你带来Strawberry Perl的人.他绝对不是反Windows.他发布了10月的版本,所以他们正在努力.还有来自Perl基金会的开放资助来修复Archive :: Extract错误.你提到的错误,RT 35334:Archive :: Zip文件名编码,也许只需要有人向它展示一些爱.那可能是你.人们解决了困扰他们的问题,所以也许没有人对模块感兴趣需要这个.
该模块存在问题,自从我在几个项目中使用它以来,我一直在关注它的进展.它最近变得更好,当然可以使用一些爱.有时开源意味着帮助解决您遇到的问题.我知道这并没有帮助你立即解决你的问题,但我认为你除了system()
通话之外还要完成这项工作.
最近通过在Windows下添加Unicode文件名支持解决了上述错误.CPAN将在一周内发布具有此修复程序的版本.