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で質問しましょう!
似たような質問が見つかりました
- フリーソフト Windowsのフリーソフト「拡張コピー」のタイムスタンプ関係の仕様は、タイムゾーンを反映しますか? 2 2022/06/21 02:58
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- 英語 「this is the/my first time~」の文法上の制約について 1 2023/04/06 09:48
- Excel(エクセル) 配列操作について 5 2023/04/18 07:27
- UNIX・Linux VirtualBox ゲストOSにPC内蔵HDDのパーティションをマウントする方法は? 2 2023/05/06 22:52
- Excel(エクセル) 1つのファイルを3つのフォルダにファイル名を【明日の日付】にして、コピーをしたい 2 2022/12/21 17:43
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
- iOS iPhone用動画保存アプリiCapのデータは外付けUSBメモリに保存できますか? 1 2022/10/18 17:48
- Windows 10 USBにwindows10をいれて起動する方法 5 2022/04/14 14:29
- Windows 10 Windows10のメタデータの「メディアの作成日時」は、タイムゾーンによって表示が変わりますか? 3 2022/06/21 02:30
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで複数のコメントのサ...
-
バッチファイル XCOPYで上書き...
-
バッチファイル 別ファイルにリ...
-
frxファイルの役目
-
Vba初心者です。下記のコード助...
-
アクセス クエリを別のファイ...
-
[エクセル]コピーするとオブジ...
-
ファイルサーバ上のファイルが...
-
エクセルVBAで開いているファイ...
-
vbsでExcelのシートをコピーす...
-
bat 同名ファイルコピー時にリ...
-
バッチファイルのコピーで
-
エクセルのハイパーリンクがコ...
-
現在のブックを閉じないで、マ...
-
開いている別のファイルにExcel...
-
エクセルのマクロについて教え...
-
サーバへファイルコピーについて
-
ExeclVBAユーザーフォームから...
-
パワポでスライドをコピーでき...
-
マインクラフトPCをプレイしよ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで複数のコメントのサ...
-
現在のブックを閉じないで、マ...
-
エクセルのマクロについて教え...
-
frxファイルの役目
-
バッチファイル XCOPYで上書き...
-
エクセルのハイパーリンクがコ...
-
エクセルVBAで開いているファイ...
-
ファイルサーバ上のファイルが...
-
エクセル2010、図が大きすぎま...
-
[エクセル]コピーするとオブジ...
-
バッチファイルのコピーで
-
アクセス クエリを別のファイ...
-
Vba初心者です。下記のコード助...
-
バッチファイル 別ファイルにリ...
-
同じファイル名 上書きしないフ...
-
Gitについて質問。 クローンし...
-
vbsでExcelのシートをコピーす...
-
マインクラフトPCをプレイしよ...
-
xcopyでのバッチコピー方法でコ...
-
ファイルをコピーできない
おすすめ情報