Domanda

C'è un modo semplice per ottenere la data di modifica di un file utilizzando Net :: SFTP?

Sarebbe bello essere in grado di fare questo:

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

Ma non è possibile (a mia conoscenza).

Berns.

È stato utile?

Soluzione

Il codice di esempio è quasi arrivati, non vi resta che utilizzare file.attributes.mtime in cui si doveva file.mtime.

Inoltre, sto cercando di indovinare il codice in questione era solo un esempio, ma in modo che esso per eseguire è anche necessario per passare il nome utente e la password per start e passare il percorso, così come il modello da glob. Così un esempio di lavoro potrebbe essere:

Net::SFTP.start('some_server', 'mike', :password => 'secret') do |sftp|
  sftp.dir.glob('.', '*').each do |file|
    puts file.attributes.mtime
  end
end

Il valore restituito da mtime sarà il numero di secondi dall'epoca quindi si consiglia di passare a Time.at per convertirlo in un oggetto Time.

Nel caso foste curiosi, gli altri attributi disponibili nello stesso modo sono:

  • permissions
  • uid
  • gid
  • size
  • atime (ora dell'ultimo accesso)
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top