有没有一种简单的方法可以使用 Net::SFTP 获取文件的修改日期?
能够做到这一点会很好:
Net::SFTP.start('some_server') do |sftp|
sftp.dir.glob('*').each do |file|
puts file.mtime
end
end
但这是不可能的(据我所知)。
伯恩斯。
有没有一种简单的方法可以使用 Net::SFTP 获取文件的修改日期?
能够做到这一点会很好:
Net::SFTP.start('some_server') do |sftp|
sftp.dir.glob('*').each do |file|
puts file.mtime
end
end
但这是不可能的(据我所知)。
伯恩斯。
您的示例代码几乎就在那里,您只需要使用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
(最后访问时间)