私が読んだほとんどのファイルは、次の方法を使用して変換すると適切なタイミングで取得されます。
// works great most of the time
private static DateTime convertToDateTime(System.Runtime.InteropServices.ComTypes.FILETIME time)
{
long highBits = time.dwHighDateTime;
highBits = highBits << 32;
return DateTime.FromFileTimeUtc(highBits + time.dwLowDateTime);
}
ここでは、この方法が機能しない場合があることを示すためにVisual Studioの例を示します。たとえば、コンピューター内の実際のファイルとデバッグを示します。したがって、私のデバッグに含まれるファイルは次のとおりです。
"A:\ Users \ Tono \ Documents \ Visual Studio 2010 \ Projects \ WpfApplication4 \ WpfApplication4 \ obj \ x86 \ Debug \ App.g.cs"
そして、これが私がDateTimeに変換しようとしているFILETIMEです「ちなみにLastWriteTimeが必要です」
ここでは、そのファイルからdwHighDateTime = 30136437であり、dwLowDateTime=-2138979250であることがわかります。
そして、メソッドと他のテクニックを実行すると、次の日付が表示されます。
これまでのところ、すべてがうまく機能しているようです。しかし、Windowsでその特定のファイルを参照して検索すると、別の日付が表示されるのはなぜですか?ファイルのプロパティを表示したときに取得する日付は次のとおりです。
日付が一致しないのはなぜですか?私は何が間違っているのですか?