2012-03-15 111 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