Klasa WebClient
jest oczywiście zaprojektowana do tłumienia wielu szczegółów i kontroli. Możesz napisać własną metodę asynchronicznego pobierania pliku bardzo łatwo i kontrolować sposób zapisywania pobranych danych na dysk.
Wiem na pewno, że this solution w codeproject zawiera klasę, która pobiera plik przy użyciu WebRequest
i WebResponse
, co pozwala na znacznie większą kontrolę. Zobacz klasę o nazwie o nazwie webdata
. Kod może trzeba zwrócić uwagę też:
FileStream newFile = new FileStream(targetFolder + file, FileMode.Create);
newFile.Write(downloadedData, 0, downloadedData.Length);
newFile.Close();
FileMode Enumeration
zawiera szereg elementów, które określają zachowanie zapisywania pliku FileMode.CreateNew
wygeneruje IOException
jeśli plik już istnieje. W miarę, jak FileMode.Create
będzie nadpisywać pliki, jeśli to możliwe.
Jeśli nalegać na użyciu WebClient.DownloadFileAsync
wtedy, jak inne chłopaki już wspomniałem: można po prostu poinformować użytkownika, że istniejący plik zostanie zastąpiony za pomocą OpenFileDialog
ale niektóre pliki do pobrania może być czasochłonne i nie ma nic do powiedzenia że użytkownik nie utworzył innego pliku podczas pobierania.
Wygląda na to, że wystarczy po prostu spróbować i się przekonać. Jeśli nie; sprawdź plik o tej nazwie przed pobraniem i usuń go przed pobraniem. – Servy
Wydaje się to dobrym pytaniem dla Google, jeśli mnie pytasz (co zrobiłeś!);] – plast1K