我无法找到有关我的问题的任何信息。如果我的搜索工作不够好,无法找到答案,请原谅。我只是想避免旋转我的车轮。
谢谢!
跟进:如果没有覆盖,我该怎么办?(如果可能的话)?
答案 0 :(得分:27)
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会被覆盖答案 1 :(得分:2)
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
包含一系列成员,指示保存文件的行为FileMode.CreateNew
如果文件已存在则会抛出IOException
。如果可能,FileMode.Create
将覆盖文件。
如果你坚持使用WebClient.DownloadFileAsync
那么,正如其他人已经提到的那样:你可以告诉用户现有文件将被OpenFileDialog
覆盖,但有些下载可以是耗费时间,没有什么可说的,用户在下载过程中没有创建另一个文件。
答案 2 :(得分:0)
如果文件存在,是的。
如果您正在重命名,或者如果您将其重新加入OpenFileDialogue()
,则由您自行决定。