2011-06-24 21 views
1

私はこれは非常に些細な音だと知っていますが、私は尋ねるための非常に具体的な理由があります。ファイルを上書きする最も速い方法は何ですか?

私はインドのムンバイにある非常に奇妙なネットワークを通過しています。私は地元のだったら、私は単純に以下のコードを実行します:もちろん

   if (File.Exists(f2)) 
       { 
        File.Delete(f2); 
       } 

       File.Copy(f1, f2); 

を私は既存の上にファイルをコピーすることはできませんので、私は、ファイルが最初に存在するかどうかをテストする必要がありますファイル。 C#はそれについて不平を言う。ここに問題があります。「最初に存在するかどうかを確認する」は5秒だけかかります。その後、削除には約3が必要です。最後に、コピーには15秒かかります.15秒コピーでは、23秒で終了します。

これは、C#エラーを防止するために、わずか8秒、つまり約50%のオーバーヘッドが増加しています。

は、オーバーヘッド「が存在しない」のすべてがなく...

File.Copy(f1, f2, Just_do_it_damnit) 

を言うする方法はありますか?

+0

あなたはflieが存在するかどうかを確認する必要はありません。あなたはそれを削除しようとし、そうでなければ例外をキャッチすることができます。 – Gabe

+0

ファイルを上書きする最も速い方法は... [read this](http://msdn.microsoft.com/en-us/library/system.io.file.copy.aspx) – sehe

答えて

10

はい、File.Copy(f1, f2, true)を使用して宛先ファイルを上書きできます。

+0

Duh ..私はもっと必要です睡眠。私はそれを知っていた..本当に。 – Jerry

3

確かに、これを使用するだけで何が問題になりますか?

File.Copy(f1,f2,true); 
0

File.Copyは三番目のパラメータを持っている - ファイルがすでに存在する場合は上書きするかどうかを指定するブール値のフラグを。だから、私はFile.Copy(f1、f2、true)はあなたが望むことをすると思います。

http://msdn.microsoft.com/en-us/library/9706cfs5(v=VS.80).aspx

関連する問題