2012-03-15 108 views
0

我有一個Ruby程序,它告訴我在運行時各種文件不存在。Ruby File.exists?(路徑)對我來說

路徑是絕對路徑,文件程序運行時存在。當程序再次運行時,一切正常。代碼絕對沒有什麼特別之處,它可以同時處理數千個其他文件,顯然,在某些時候不是特定的文件。

它的Ruby on最新穩定的Cygwin 1.8.7在Windows 2003上

怎麼可能來這裏嗎?

+0

「當程序再次運行,一切正常。」 - 哦沒關係,沒有理解這部分。那麼,這可能不是一件紅寶石,而是一件系統工具。我猜想當多個ruby線程/進程同時訪問文件系統時可能會發生奇怪的事情 - 也許有一些關於不允許併發訪問的windows/cygwin IO。是否有可以檢查的通用系統日誌? – 2012-03-15 18:38:27

回答

0

如果你在cygwin上,也許你使用了錯誤類型的斜線? (正向與反向)

嘗試一些簡單的實驗。在某個地方製作一個測試文件,並嘗試一系列的方法來實現它。

File.exists?('c:/test.txt') 
File.exists?('c:\test.txt') 
File.exists?('/test.txt') 
File.exists?('\test.txt') 

(我不知道窗口/ Cygwin的,所以我不知道的東西,試圖充分的空間會是什麼)

+0

每次路徑相同,但結果不同。它看起來像是File.exists的完全隨機部分?通話失敗。正如我所說的,程序通常可以在沒有錯誤的情況下再次運行。 – 2012-03-15 18:13:03