我正在尝试使用 Ruby 从 FTP 中删除旧文件net/sftp
,但我不断收到错误消息,提示该文件不存在。
:error=>"Net::SFTP::StatusException (2, \"no such file\")"
我可以在使用相同的凭据登录时手动删除文件,所以我知道我有权限。
require 'net/sftp'
ftp = Net::SFTP.start(@ftp_url, @ftp_user, :password => @ftp_pwd)
ftp.dir.entries('somePath').each do |entry|
begin
age_days = (Time.now.to_i - entry.attributes.atime) / 86400
if(age_days > ftp_max_file_age_days)
ftp.remove!(entry.name)
end
rescue Exception => e
# log error here
end
end
我更喜欢remove!
在这种情况下一切都同步发生,但我也尝试过remove
.
我还尝试给它提供文件的完整路径,而不仅仅是条目名称(比如'somePath' + entry.name
而不是 just entry.name
)。我在想也许是因为我需要更改工作目录,这显然net/sftp
是不允许的。
提前致谢!