- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:C# でファイルのタイムスタンプの比較)
C#でファイルのタイムスタンプの比較方法とUSBメモリの影響について
このQ&Aのポイント
- C#でファイルのタイムスタンプの比較方法について質問があります。
- USBメモリにコピーしたファイルの中に、同一と判断されないファイルが出てしまう原因がわかりません。
- 具体的に、プログラムで、NTFSドライブとFATドライブ上のファイルのタイムスタンプを比較する方法について教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
DateTime型を減算するとTimeSpan型で戻ってくるので、 http://msdn.microsoft.com/ja-jp/library/1905yhe2(v=VS.80).aspx その中のTotalSecondsを見ればいいでしょう。 http://msdn.microsoft.com/ja-jp/library/system.timespan.totalseconds(v=VS.80).aspx NTFSとFATの「同じファイル」の比較なら、NTFS→FATコピー時には繰り上げしか発生しないので、実際には「FAT - 2 <= NTFS <= FAT」の場合に同値と看做す、という手法になるかと思います。
その他の回答 (1)
- D-Matsu
- ベストアンサー率45% (1080/2394)
回答No.1
「timeの差が±2秒以内なら」と考えれば条件式が見えてきませんか?
質問者
お礼
応答ありがとうございます。 つまり、 (f.time - this.time > 2秒) ? -1 : (f.time - this.time < -2秒) ? 1 : ですよね。でも、どのように記述するのか、よくわからないんです。 さらには、本当に「2秒誤差で判断して大丈夫」、同一ファイルが異なると判断されることが本当にないのか? についても回答がほしいです。 更なる、ご教示お願いします。
お礼
再度応答、ありがとうございます。 つまり、 ((f.time - this.time).TotalSeconds > 2) ? -1 : ((f.time - this.time).TotalSeconds < -2) ? 1 : ですね。 どちらがFATか不明なので、とりあえず±2秒以内なら同じとみなして、問題なさそうです。ありがとうございました。