环境:OSX 10.10 / iPhoto 9.6 / Ruby 2.2
在ruby脚本中,我试图从'iPhoto Library'打开一个xml文件来获取专辑列表..但是我收到了一个错误:
f = File.open(@xmlpath)
Errno::ENOENT: No such file or directory @ rb_sysopen - /Users/myself/Pictures/iPhoto%20Library/AlbumData.xml
首先,我在用户路径中定义了“iPhoto Library”路径:
PhotoLib = File.expand_path(File.join("~","Pictures","iPhoto Library")
然后我定义了@xml文件路径(转义嵌入空格)
@xmlpath = URI.escape(File.join iPhotoLib, "AlbumData.xml")
最后我尝试打开xml文件
f = File.open(@xmlpath)
但它引发了“没有这样的文件或目录”的错误......我哪里错了? 该文件存在于“iPhoto Library”内容中......
答案 0 :(得分:0)
您不应该使用URI.escape
- 这是为了网址,但传递给File.open
的是您本地文件系统上的路径,而不是网址。特别是百分比转义(“%20”)对您的文件系统没有意义
答案 1 :(得分:0)
我应该使用
library_path = Pathname.new(ENV [“HOME”])+“Pictures”+“iPhoto Library.photolibrary” xml_path = library_path +“AlbumData.xml” f = File.open(xml_path)
路径名正确处理它....