2012-09-12 70 views
1

我已经完成了几个小型脚本/自动化项目,但这是我第一次使用MacRuby,并且根本找不到为什么我的项目无法正常工作。从MacRuby访问外部文件

如果只是一个普通的Ruby脚本,这个任务本来就很容易解决。但是,它需要一个Mac GUI,所以我决定使用MacRuby作为它的Cocoa绑定。

该应用程序本身是一个简单的表单,它将根据来自外部CSV和某些文本字段的某些数据执行计算,然后显示计算结果。

我的问题是,这个代码不似乎工作:

@arr_from_csv = CSV.read("data.csv") 

在建设,我得到以下错误的文件:

[...]/ruby/1.9.2/CSV.rb:1335:in `open': No such file or directory - open() failed (Errno::ENOENT) 

起初,我认为我必须有将CSV文件放入XCode项目文件夹结构内的错误目录中。我尝试将其放在与脚本本身相同的文件夹(app_delegate.rb)。没有工作。我试过把它放在Resources文件夹中,仍然没有工作。

然后,我决定只使用绝对文件路径。所以,我改成代码:

@arr_from_csv = CSV.read("~/data.csv") 

并将文件复制到我的主目录。它仍然无法读取CSV文件。

我错过了什么吗?对不起,这是我第一次使用MacRuby。

谢谢。

回答

0

我能够通过使用来解决我的问题:

@arr_from_csv = CSV.read(File.expand_path("~/data.csv")) 
0

您应该将代码更改为“/Users/xxx/data.csv”。 Ruby不会将“〜”扩展为“/ Users/xxx”。

注意:xxx代表您的登录ID。

+1

红宝石即可。通过使用'File.expand_path()'。 – dashmug