我试图使用像这样的几个文件中读

IO.foreach("TeamFields.txt") { |line| fieldNames.push(line.chomp) }

它的命令行运行时工作正常,但是当我包与鞋的.exe并运行它无法找到该文件。有没有相对指定路径的.exe或做我必须提供完整的文件路径(如“C:\文件\ TeamFields.txt”)的方法吗?感谢您的帮助。

有帮助吗?

解决方案

这是因为你的可执行文件不具有正确的当前目录运行。

请修正当前目录(例如在快捷方式)或修改的Ruby程序自动工作目录设置为程序目录中:

Dir.chdir(File.dirname($PROGRAM_NAME))

其他提示

您需要设置“当前应用程序目录”走出相对之前正确。 用户可以与不同的启动目录执行应用程式,或系统可以用不同的目录调用应用程式。

如果有问题的文件是您的应用程序的文件夹中,你需要做的唯一的事情是让该文件夹,并将其设置为当前的。

我不程序在红宝石,但是我有窗,和几率的相对路径将基于.exe文件的位置。

所以,是的,你可能会更好过传递一个完整路径,文件名。

在恒定__FILE__将包含完整路径当前正在执行的文件。然后,您可以使用File类的方法来去掉文件名,追加相对路径,因为这是任何其他文件在你的包,你要和解决的结果。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top