Errno :: ENOTDIR(不是目录@ rb_sysopen

时间:2018-09-09 11:06:37

标签: ruby

这是代码:

File.read(File.expand_path("data.json", __FILE__))

这是我得到的错误:

Errno::ENOTDIR (Not a directory @ rb_sysopen - /mnt/c/Users/Amadeus Pagel/Documents/readpaths/imports/khanacademy/import.rb/data.json)

但是当我从readpaths目录中的rails控制台运行它时,它会起作用:

File.read("imports/khanacademy/data.json")

2 个答案:

答案 0 :(得分:0)

File.expand_path的第二个参数应该是目录,但是您正在传递__FILE__,它是文件,而不是目录。您需要使用File.dirname(__FILE__)__dir__

答案 1 :(得分:0)

FILE 给出当前文件的相对路径,在您的情况下为 / mnt / c / Users / Amadeus Pagel / Documents / readpaths / imports / khanacademy / import.rb import.rb不是目录。因此,您遇到了错误。试试这个

File.read(File.expand_path(“ data.json”,File.dirname(__ FILE __))