ruby / OS X не может открыть существующий файл в iPhoto Library
env: OSX 10.10 / iPhoto 9.6 / Ruby 2.2
в сценарии ruby я пытаюсь открыть XML-файл из "iPhoto Library", чтобы получить список альбомов... но я получил ошибку:
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 ответа
Вы не должны использовать URI.escape
- это для URL, но то, что вы передаете File.open
путь в вашей локальной файловой системе, а не URL. В частности, процентное экранирование ("%20") не имеет смысла для вашей файловой системы.
Я должен использовать
library_path = Pathname.new(ENV["HOME"]) + "Изображения" + "iPhoto Library.photolibrary" xml_path = library_path + "AlbumData.xml" f = File.open(xml_path)
Путь обрабатывать правильно это....