2016-11-17 13 views
-2

我知道这个网站上有很多关于我的主题的现有文章,并且已经阅读了其中的一些文章,但并未回答我的问题。使用c#每天从网站下载文件

很简单:我想一个解决方案,它可以让我从网站上下载一个文件,这个约束:

  • 之前下载的文件,我需要指定一个开始和结束日期为两个文本框,所以我不能直接使用URL,因为这个URL会一直改变。

  • 此文件需要每天下载4次,且无需人工干预。

所以,最好的办法就是像scrpit那样,例如使用windows scheduler,这个脚本在特定的时间执行并下载文件。

我的问题是:什么是与C#使用的最好的技术? 我对c#没有太多的经验......从我读的Selenium Framework对WebDriven来说很好。我可以使用它并自动下载吗? 因为从我读的内容来看,用户需要运行他的项目,但它可以像脚本一样自动化......我是对的吗?

还是知道另一种方法呢?

回答

0

我无法测试这个,因为我的工作机器上没有C#,但我认为它会是这样的。

下面是覆盖这些选项的例子:

WebClient client = new WebClient(); 
DateTime yesterday = DateTime.Today.AddDays(-1); 
DateTime tomorrow = DateTime.Today.AddDays(1); 
Uri ur = new Uri(http://remotehost.do/images/" + yesterday + "to" + tomorrow + "/excel.xls"); 
client.Credentials = new NetworkCredential("username", "password"); 
client.DownloadProgressChanged += WebClientDownloadProgressChanged; 
client.DownloadDataCompleted += WebClientDownloadCompleted; 
client.DownloadFileAsync(ur, @"C:\path\excel.xls"); 

并实施了回调的功能如下:

void WebClientDownloadProgressChanged(object sender, DownloadProgressChangedEventArgs e) 
{ 
    Console.WriteLine("Download status: {0}%.", e.ProgressPercentage); 
} 

void WebClientDownloadCompleted(object sender, DownloadDataCompletedEventArgs e) 
{ 
    Console.WriteLine("Download finished!"); 
}