11

質問に関する情報が見つかりません。私の検索努力が答えを見つけるのに十分ではなかったならば、すみません。車輪を回さないようにしたいだけです。

ありがとう!

フォローアップ:上書きされない場合、どうすれば(可能であれば)それを取得できますか?

4

3 に答える 3

41

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");
}

再度ダウンロードすると、Test.exe が上書きされる

于 2013-01-15T21:28:41.167 に答える
3

このWebClientクラスは明らかに、多くの詳細と制御を抑制するように設計されています。ファイルを非常に簡単に非同期にダウンロードする独自のメソッドを作成し、ダウンロードしたデータをディスクに書き込む方法を制御できます。

codeproject のこのソリューションWebRequestには、を使用してファイルをダウンロードし、WebResponseより多くの制御を可能にするクラスが含まれていることは確かです。named が含まれているクラスを参照してくださいwebdata。あなたも注意を払う必要があるコード:

FileStream newFile = new FileStream(targetFolder + file, FileMode.Create);
newFile.Write(downloadedData, 0, downloadedData.Length);
newFile.Close();

にはFileMode Enumeration、ファイルを保存する動作を指示する一連のメンバーが含まれており、ファイルが既に存在する場合FileMode.CreateNewは がスローされます。IOException可能であればどこでFileMode.Createファイルを上書きします。

WebClient.DownloadFileAsync他の人がすでに述べたように、使用を主張する場合:既存のファイルが上書きされることをユーザーに通知するだけで済みますOpenFileDialogが、一部のダウンロードには時間がかかる可能性があり、ユーザーが作成していないと言うことは何もありませんダウンロード中に別のファイル。

于 2013-01-15T21:49:39.680 に答える
0

ファイルが存在する場合は、はい。

名前を変更している場合、または にフックしている場合、それはOpenFileDialogue()あなたの裁量です。

于 2013-01-15T21:34:09.217 に答える