尝试Net :: SFTP下载,但得到Errno :: EACCES:权限被拒绝 - 目录我正在复制到

时间:2013-04-29 13:30:19

标签: ruby net-sftp

我正在尝试将文件从Unix框复制到我的本地桌面但是我收到错误:Errno::EACCES: Permission denied - C:\Users\MyUser\Desktop

require 'net/sftp'
Net::SFTP.start(unixBox, user, :password => password) do |sftp|
  sftp.download!(filePathOnUnixBox, 'C:\Users\MyUser\Desktop')
end

我的桌面:Windows 7

ruby​​ 1.8.7(2010-12-23 patchlevel 330)[i386-mingw32]

net-sftp(2.1.1)

Unix框: SunOS

更新:您似乎必须在TO文件路径中指定文件名,以便C:\Users\MyUser\Desktop成为C:\Users\MyUser\Desktop\fileNameIWant.ext

3 个答案:

答案 0 :(得分:0)

看起来运行ruby脚本的用户没有写入硬盘的权限。也许MyUser不是正在执行脚本的用户。

编辑:

忘了提,你可以尝试逃避窗口反斜杠。尝试:

C:\\Users\\MyUser\\Desktop

作为本地路径

答案 1 :(得分:0)

你可以做的一件事就是避免疯狂,就是在使用Ruby时停止在Windows文件名中使用反斜杠。根据{{​​3}}:

  如果可能,Ruby将在不同的操作系统约定之间转换路径名。例如,在Windows系统上,文件名为" /gumby/ruby/test.rb"将作为" \ gumby \ ruby​​ \ test.rb"打开。 [...]

答案 2 :(得分:0)

您似乎必须在TO文件路径中指定文件名,以便C:\Users\MyUser\Desktop成为C:\Users\MyUser\Desktop\fileNameIWant.ext

在我只指定路径而不指定文件名之前。