我收到以下错误:变量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
但是,我觉得这只是一个破解。