C'è un modo per ottenere la data di modifica da Net :: :: comandi NET SFTP SSH o in Ruby?
-
30-09-2019 - |
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.
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)