是否有一种简单的方法可以使用Net :: SFTP来修改文件的日期?
能够做到这一点真是太好了:
Net::SFTP.start('some_server') do |sftp|
sftp.dir.glob('*').each do |file|
puts file.mtime
end
end
但那是不可能的(据我所知)。
伯恩斯。
答案 0 :(得分:9)
您的示例代码几乎就在那里,您只需要在file.attributes.mtime
处使用file.mtime
。
另外,我猜测问题中的代码只是一个示例,但为了执行它,您还需要将用户名和密码传递给start
并传递路径和模式到glob
。所以一个有效的例子是:
Net::SFTP.start('some_server', 'mike', :password => 'secret') do |sftp|
sftp.dir.glob('.', '*').each do |file|
puts file.attributes.mtime
end
end
mtime
返回的值将是自纪元以来的秒数,因此您可能希望将其传递给Time.at以将其转换为Time
对象。
如果你很好奇,其他可用的属性是:
permissions
uid
gid
size
atime
(上次访问时间)