2012-08-28 61 views
0

我想提取zip文件并在提取时删除它们。谷歌搜索告诉我,在Ruby中解压文件最简单的方法是用unzip filename.zip执行它们。我的下一步是删除zip文件。我如何使一个shell命令在ruby中同步执行

第二步发生得如此之快以至于shell命令解压并没有机会在删除文件之前看到该文件。它的错误了说

"unzip: cannot find either filename.zip or filename.zip.zip." 

我只是想有unzip...命令继续Ruby脚本执行之前完成。我希望它同步阻止。有没有办法做到这一点?我无法使用睡眠,因为我无法估计需要多长时间。

+2

将是一个好主意,向我们展示你的代码。 – oldergod

+2

请发布您的实际代码。 –

回答

1

在ruby中运行外部程序的常用方法是同步的,所以应该没有问题。

尝试

`unzip` 

system("unzip") 

system("unzip x && rm x") 
+0

谢谢。我认为这个系统(“unzip x && rm x”)会起作用。我已经通过使用rubyzip库解压缩解决了我的问题。但是如果我不得不执行一个shell命令,我想你的技巧会起作用。 – look