私はPythonで1つ、PowerShellで1つ、ファイルの最終変更を取得して比較する2つのスクリプトを用意しています。 PowerShellでは1が使用しています:WindowsでのPythonの最後の変更時間の取得
$t = $f.LastWriteTime.ToFileTimeUtc()
この時間は、私にとっての主であり、私はPythonで同じ情報を取得する必要があります。私はos.stat
を使用して、この式を使用した「Windowsファイルの時間」にUNIXタイムスタンプ*を変換しています:
statinfo = os.stat(file_name)
t = long(statinfo.st_mtime * 10000000L) + 11644473600L * 10000000L
はしかし、私は、丸め誤差の問題に実行します。 st_mtime
は浮動小数点であり、それを乗算して長時間キャストすると精度が失われます。通常、誤差は10未満です(1ミリ秒未満です)。もちろん、プログラムを修正してこの精度内の数値を比較することはできますが、同じ数字を持つ方が大丈夫です。
ので、ここでの同様の質問があります:How do I get *change* file time in Windows?そこから私はしかし、私はIronPythonの、PyWinまたは類似のPython拡張モジュールを使用せずにそれを行う方法がわからないです、私は構造FILE_BASIC_INFORMATION(http://msdn.microsoft.com/en-us/library/windows/hardware/ff545762(v=vs.85).aspx)にアクセスしなければならない集まります。この情報へのアクセスには簡単な方法がありますか(おそらくを使用しています)?
* Windowsファイルの時刻は、1601年1月1日午後12時00分(米国時間)から経過した100ナノ秒の間隔の数を表す64ビットの値です。世界協定世界時(UTC)。 https://msdn.microsoft.com/en-us/library/system.datetime.tofiletimeutc(v=vs.110).aspx