4

使用此代码,我可以下载文件,但我应该知道文件名。有没有办法下载目录中的任何文件(目录链接:https ://www.dropbox.com/sh/koao8dlfpcao8sk/XzDZMfejiF )并运行它?

private void Update_Load(object sender, EventArgs e)
{
        WebClient webClient = new WebClient();
        webClient.DownloadFileCompleted += new AsyncCompletedEventHandler(Completed);
        webClient.DownloadProgressChanged += new DownloadProgressChangedEventHandler(ProgressChanged);
        webClient.DownloadFileAsync(new Uri("https://www.dropbox.com/s/6o5kvzr7s0c6mne/Test.txt"), @"C:\Users\Admin\Downloads\Test.txt");
}
4

3 回答 3

4

Dropbox 有一个 REST API,因此您只需在适当的 URL 上执行 HTTP GET 即可获取文件夹的内容。查看Dropbox API 参考中的 /metadata 。如果您传递 list=true,这将为您提供文件夹的内容,并且您可以解析响应以获取文件名。然后就可以下载文件了。

于 2012-06-19T13:55:30.167 回答
0

当您通过DownloadFileAsync开始下载时,无论如何您都需要指定一个文件名。只需按照 MusiGenesis 的建议使用该名称并将其传递给Process.Start即可。

于 2012-06-19T13:49:45.207 回答
0

您似乎已经涵盖了下载部分。假设这是您正在下载的 Windows EXE,下载后您可以使用Process.Start运行它。

编辑: 这个问题似乎提供了一些关于如何做到这一点的想法。基本上,您使用您拥有的目录 URL 创建一个 HttpWebRequest,然后您必须解析此处返回的内容,以便获取该目录中包含的文件列表(可能只是一个文件)。一旦你有了它,你可以以正常方式下载该文件。

于 2012-06-19T13:38:02.250 回答