ここで何が起こっているのかわかりません。Times である 2 つの変数で文字列比較を実行する必要があります。1 つの変数は、.mtime 関数を使用する Time オブジェクトです。もう 1 つの変数は、sqlite3 データベースから取得されます。これらの時間を比較して、変更日が sqlite3 テーブルに記載されている最終変更日と異なるかどうかを確認したいと思います。ここにその部分のコードがあります。
値を出力すると同じように見えます...では、比較が機能しないのはなぜですか
def scanfile
dir = Dir.new(Dir.pwd)
dir.each do |file|
fileName = File.basename(file)
modTime = File.mtime(file).strftime("%F %T")
lastMod = nil
exists = checkDB(fileName)
if exists == true
$db.execute("SELECT DateMod FROM Files WHERE fileName = '#{fileName}'") do |mod|
lastMod = mod
end
mod = modTime.to_s
printf("modTime: #{mod} lastMod: #{lastMod}\n")
if mod != lastMod
$db.execute("UPDATE Files SET NumMods=NumMods+1 WHERE fileName = '#{fileName}'")
$db.execute("UPDATE Files SET DateMod='#{modTime}' WHERE fileName = '#{fileName}'")
print "#{fileName} updated...\n"
end
else
if fileName != "." && fileName != ".."
inputRecord(fileName, modTime, modTime, 1)
print "#{fileName} inserted...\n"
end
end
end
end