3

Net::SFTP を使用してファイルの変更日を取得する簡単な方法はありますか?

これができるといいですね:

Net::SFTP.start('some_server') do |sftp|
  sftp.dir.glob('*').each do |file|
    puts file.mtime
  end
end

しかし、それは不可能です(私の知る限り)。

バーンズ。

4

1 に答える 1

10

サンプルコードはほぼそこにあります。必要なの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(最終アクセス時刻)
于 2010-04-20T20:54:01.013 に答える