WebClient загружает поврежденные файлы

Я пытаюсь загрузить файл Graph.zip с определенного URL-адреса: https://www.dropbox.com/s/erc6ke9k1x2nle0/Graph.zip Используя этот код:

WebClient webClient = new WebClient();
webClient.DownloadFile("https://www.dropbox.com/s/erc6ke9k1x2nle0/Graph.zip",
                        @"Graph.zip");

Всякий раз, когда я выполняю код, он либо поврежден, либо имеет размер 0 байт. Я делаю что-то неправильно?


person Frikha Ahmad    schedule 28.12.2020    source источник


Ответы (1)


Попробуйте открыть URL-адрес в браузере: https://www.dropbox.com/s/erc6ke9k1x2nle0/Graph.zip

Вы заметите, что вас перенаправили на промежуточную страницу. Если вы сохраните его с расширением zip-файла, то, поскольку файл на самом деле не является zip-файлом, он будет отображаться как поврежденный для zip-клиентов. Чтобы загрузить файлы Dropbox, вам нужно либо использовать остальные API, либо SDK.

Посмотрите пример консольного приложения здесь: https://www.dropbox.com/developers/documentation/dotnet#tutorial

async Task Download(DropboxClient dbx, string folder, string file)
{
    using (var response = await dbx.Files.DownloadAsync(folder + "/" + file))
    {
        Console.WriteLine(await response.GetContentAsStringAsync());
    }
}
person Athanasios Kataras    schedule 28.12.2020