ruby / OS X无法打开iPhoto Library中的现有文件

时间:2015-03-20 13:08:16

标签: ruby osx-yosemite iphoto

环境: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”内容中......

2 个答案:

答案 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)

路径名正确处理它....