0

我目前遇到了这个问题,我的 .gz 文件是“some_name.txt.gz”(.gz 不可见,但可以用File::Type函数识别),在 .gz 文件中,有一个文件夹名称“some_name.txt”,其中包含其他文件和文件夹。

但是,当Archive::Extract从文件夹作为 .txt 文件。

我一直在网上搜索答案,但没有一个是正确的解决方案。有没有解决的办法?

4

3 回答 3

0

也许您可以使用 File::Type 识别这些文件,使用 .gz 扩展名而不是 .txt 重命名它们,然后尝试使用 Archive::Extract 吗?

于 2013-08-21T19:50:20.057 回答
0

存档::提取官方文档

“因为 .gz 文件从不包含目录,而只有一个文件;”

我建议在文件夹上使用 tar 然后 gz 它。这样您就可以使用Archive::Tar轻松提取特定文件:

来自官方文档的示例:

$tar->extract_file( $file, [$extract_path] ) 写入一个条目,其名称等同于提供给磁盘的文件名。可选地采用第二个参数,它是条目将被写入的完整本机路径(包括文件名)。例如:

$tar->extract_file( 'name/in/archive', 'name/i/want/to/give/it' );
$tar->extract_file( $at_file_object,   'name/i/want/to/give/it' );

成功返回真,失败返回假。

希望这可以帮助。

于 2013-08-22T12:03:49.520 回答
0

一个 gzip 文件只能包含一个文件。如果您的存档文件包含一个文件夹以及多个其他文件和文件夹,那么您可能有一个包含 tar 文件的 gzip 文件。或者,您可能有一个 zip 文件。

您能否提供有关如何创建存档文件及其内容列表的更多详细信息?

于 2013-08-22T12:26:46.767 回答