私の質問に関する情報は見つかりません。私の検索の努力が答えを見つけるのに十分でない場合は、私を許してください。私はちょうど私の車輪を回転させないようにしたい。WebClient.DownloadFileAsyncはファイルがすでにディスク上に存在する場合、ファイルを上書きしますか?
ありがとうございます!
フォローアップ:上書きしない場合は、(可能な場合)どうすれば入手できますか?
私の質問に関する情報は見つかりません。私の検索の努力が答えを見つけるのに十分でない場合は、私を許してください。私はちょうど私の車輪を回転させないようにしたい。WebClient.DownloadFileAsyncはファイルがすでにディスク上に存在する場合、ファイルを上書きしますか?
ありがとうございます!
フォローアップ:上書きしない場合は、(可能な場合)どうすれば入手できますか?
30第二の試験は、それが
テスト上書きしないことを確認する:
using (WebClient client = new WebClient())
{
client.DownloadFileAsync(new Uri("http://download.microsoft.com/download/8/4/A/84A35BF1-DAFE-4AE8-82AF-AD2AE20B6B14/directx_Jun2010_redist.exe"), @"C:\Test.exe");
}
のファイルが存在する場合は再度
downlaoded場合TEST.EXEははい、overwittenれます。
名前を変更する場合、またはOpenFileDialogue()
に接続している場合は、それはあなたの裁量です。
WebClient
クラスは、多くの詳細と制御を抑制するように設計されていることは明らかです。非同期でファイルを非常に簡単にダウンロードし、ダウンロードしたデータをディスクに書き込む方法を制御する独自のメソッドを記述することができます。
codeprojectのthis solutionには、WebRequest
とWebResponse
を使用してファイルをダウンロードするクラスが含まれているので、はるかに制御が可能です。名前がwebdata
であるクラスを参照してください。あなたも注意を払う必要がありますすることができますコード:
FileStream newFile = new FileStream(targetFolder + file, FileMode.Create);
newFile.Write(downloadedData, 0, downloadedData.Length);
newFile.Close();
FileMode Enumeration
は、ファイルがすでに存在する場合IOException
がスローされますファイルFileMode.CreateNew
を保存する動作を指示する一連の部材が含まれています。可能であれば、FileMode.Create
はファイルを上書きします。
WebClient.DownloadFileAsync
を使用することを強くお勧めする場合は、すでに言及したように、既存のファイルがOpenFileDialog
によって上書きされることをユーザーに伝えることができますが、ダウンロードには時間がかかり、ユーザーがダウンロード中に別のファイルを作成していないことを確認します。
それを試してみるだけで十分だろう。そうでなければ;ダウンロードする前にその名前のファイルを確認し、ダウンロードする前に削除してください。 – Servy
これはGoogleに良い質問のように思えますが、あなたが私に尋ねると(これはあなたでした);] – plast1K