2012-08-28 85 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