2011-03-04 35 views
0

我有以下代碼:紅寶石Dir.entries不「看」我的所有文件

Dir.chdir(mydir) 
Dir.entries(mydir).each do |file| 
    log.info(file) 
end 

我的問題是Dir.entries似乎並沒有「看」三最近創建的目錄中的文件;也就是說,它們不會出現在日誌中。我在Windows XP上使用Ruby 1.9.2。該文件被上面的代碼之前立即創建,通過StatTransfer命令文件:

# Run the stcmd file and wait for it to finish 
threadC = Thread.new {system("ST \"myStatTransferProgram.stcmd\"")} 
threadC.join 

我不認爲StatTransfer是問題,因爲Dir.entries可以「看到」由stcmd文件產生的前幾個文件只是精細。我試圖在兩步之間加入sleep(30)以防Thread.join沒有做到我認爲的那樣,但這並沒有什麼區別。我是Ruby的新手,希望得到任何建議 - 謝謝!

回答

0

我不完全確定發生了什麼,但似乎問題與前面步驟中的File.rename相關,而不是我認爲與之相關的步驟。我很抱歉讓人們走錯了路。如果有人想要更多信息,請告訴我。

0

是否有任何理由爲什麼你創建一個線程,然後加入它時,直接運行system命令會有完全相同的效果?

+0

實際上,直接運行'system'命令的效果並不相同--​​Ruby並沒有等待進程完成。 – 2011-03-04 22:57:23