我收到以下錯誤:變量Errno :: ENOENT:沒有這樣的文件或目錄紅寶石
"Errno::ENOENT: No such file or directory"
當我嘗試下載文件到不存在的目錄。
例如:
ftp = Net::FTP.new('example.com')
ftp.login
files = ftp.chdir('pub/lang/ruby/contrib')
files = ftp.list('n*')
ftp.getbinaryfile('nif.rb-0.91.gz', 'pub/lang/ruby/contrib/nif.gz', 1024)
ftp.close
然而,對於很多我將下載的文件,完整目錄路徑將不存在。例如,在第一個文件創建pub之前,它不會存在,這也適用於lang/ruby/contrib。
有沒有一種方法可以檢查目錄是否存在,如果不創建它們?我知道存在嗎?,但它看起來引用文件,並且不會創建完整路徑。我想我需要一些遞歸方法遍歷文件夾結構,直到它命中文件名。
編輯:mkdir_p似乎正是我需要的解決方案。
然而,當我使用 「/ A/B/C」 我注意到, FileUtils.mkdir_p(File.dirname(和localdir)) 返回一個錯誤的路徑:errno的:: EACCES:權限被拒絕 -/A
如果我手動刪除前面的「/」,它就會起作用。這是什麼造成的?解決錯誤的最佳解決方案是什麼?我應該只使用以下嗎?
path="https://stackoverflow.com/a/b/c"
if path[0]="/"
path=path[1..-1]
end
但是,我覺得這只是一個破解。