
C# でファイルのタイムスタンプの比較
public class FileList
{
long size;
DateTime time;
string name;
:
があり、このクラスのファイルを比較するメソッドcmpを作りました。
private int cmp(FileList f)
{
return (
(f.size < this.size) ? -1 :
(f.size > this.size) ? 1 :
(f.time > this.time) ? -1 :
(f.time < this.time) ? 1 :
this.name.CompareTo(f.name));
}
しかし、USBメモリにコピーしたファイルの中に、同一と判断されないファイルが出てしまいます。原因を調べたら、USBメモリにコピーするときにタイムスタンプが変更するためとわかりました。
http://support.microsoft.com/kb/402160/ja
「奇数秒に作成されたファイルを NTFS パーティションから FAT パーティションにコピーすると、作成日時の繰り上げが発生します。」という記載があり、原因はわかりました。
しかし、後半には、「NTFS ドライブと FAT ドライブ上のファイルのタイムスタンプを比較する場合は、この動作を考慮する必要があります。 」とだけ記載がありますが、具体的に、プログラムで、どのように考慮したらよいのかわかりません。「2秒以内なら同じとみなす」といった処理をすればよい事はわかりますが、ここで詰まっています。ご教示お願いします。
No.2ベストアンサー
- 回答日時:
DateTime型を減算するとTimeSpan型で戻ってくるので、
http://msdn.microsoft.com/ja-jp/library/1905yhe2 …
その中のTotalSecondsを見ればいいでしょう。
http://msdn.microsoft.com/ja-jp/library/system.t …
NTFSとFATの「同じファイル」の比較なら、NTFS→FATコピー時には繰り上げしか発生しないので、実際には「FAT - 2 <= NTFS <= FAT」の場合に同値と看做す、という手法になるかと思います。
再度応答、ありがとうございます。
つまり、
((f.time - this.time).TotalSeconds > 2) ? -1 :
((f.time - this.time).TotalSeconds < -2) ? 1 :
ですね。
どちらがFATか不明なので、とりあえず±2秒以内なら同じとみなして、問題なさそうです。ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで複数のコメントのサ...
-
frxファイルの役目
-
[エクセル]コピーするとオブジ...
-
バッチファイル 別ファイルにリ...
-
バッチファイル XCOPYで上書き...
-
エクセル2010、図が大きすぎま...
-
vbsでExcelのシートをコピーす...
-
アクセス クエリを別のファイ...
-
エクセルのハイパーリンクがコ...
-
現在のブックを閉じないで、マ...
-
xcopyでのバッチコピー方法でコ...
-
同じファイル名 上書きしないフ...
-
ファイルサーバ上のファイルが...
-
ハイフネーションされている英...
-
vbsでファイルやフォルダのコピ...
-
Dreamweaver CS4のカーソルやコ...
-
日付の新しいファイルのみ自動...
-
リモートデスクトップとVB.NET
-
FTPとファイルコピーの違いにつ...
-
再インストール出来ません。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで複数のコメントのサ...
-
同じファイル名 上書きしないフ...
-
ファイルサーバ上のファイルが...
-
frxファイルの役目
-
バッチファイル XCOPYで上書き...
-
[エクセル]コピーするとオブジ...
-
Vba初心者です。下記のコード助...
-
エクセルのハイパーリンクがコ...
-
バッチファイル 別ファイルにリ...
-
エクセル2010、図が大きすぎま...
-
現在のブックを閉じないで、マ...
-
vbsでExcelのシートをコピーす...
-
xcopyでのバッチコピー方法でコ...
-
バッチファイルのコピーで
-
FTPとファイルコピーの違いにつ...
-
アクセス クエリを別のファイ...
-
パワポでスライドをコピーでき...
-
vbsでファイルやフォルダのコピ...
-
開いている別のファイルにExcel...
-
bat 同名ファイルコピー時にリ...
おすすめ情報