Ruby 如何解压缩目录中的多个文件夹-通配符不起作用
我在Ruby/Watir工作 我正在从一个网站下载文件,它们位于.zip文件夹中 我想解压这些文件夹,但我不知道下载的文件夹的名称,所以我决定使用通配符,这是不工作的Ruby 如何解压缩目录中的多个文件夹-通配符不起作用,ruby,wildcard,watir,unzip,Ruby,Wildcard,Watir,Unzip,我在Ruby/Watir工作 我正在从一个网站下载文件,它们位于.zip文件夹中 我想解压这些文件夹,但我不知道下载的文件夹的名称,所以我决定使用通配符,这是不工作的 Zip::File.open('my/directory/*.zip') { |zip_file| zip_file.each { |f| f_path=File.join("fil_download", f.name) FileUtils.mkdir_p(File.dirname(f_path))
Zip::File.open('my/directory/*.zip') { |zip_file|
zip_file.each { |f|
f_path=File.join("fil_download", f.name)
FileUtils.mkdir_p(File.dirname(f_path))
zip_file.extract(f, f_path) unless File.exist?(f_path)
}
}
“通配符”实际上是一个名为。Ruby支持这个槽
应该是:
Dir.glob('my/directory/*.zip') { |filename|
Zip::File.open(filename) { |zip_file|
zip_file.each { |f|
f_path=File.join("fil_download", f.name)
FileUtils.mkdir_p(File.dirname(f_path))
zip_file.extract(f, f_path) unless File.exist?(f_path)
}
}
}
那就更有意义了!非常感谢你!这是另一回事,而且不受
Zip::File
的直接支持。之后需要将它们连接起来。或者调用shell命令<例如,UNIX上的code>unzip可以提取到标准输出。您可以将其重定向到一个文件。我建议进行一点调查,如果你不应该找到一个解决方案,就提出一个新的问题。