如何使用c#windows应用程序检查网站下载部分中的文件

如何使用c#windows应用程序检查网站下载部分中的文件,c#,wpf,C#,Wpf,我们生产一种用于安全行业的设备,我已经编写了实用软件来更改用户设置。有一个选项可以更新内部固件,我想知道访问我们公司网站下载部分的最佳方式,并检查是否有新版本的固件 文件格式类似于“应用程序固件VX_XX.hex” 我可以使用 WebClient myClient = new WebClient(); myClient.DownloadFile(strDownloadAddress, FileName); 但我不想循环浏览可能的文件,只是为了看看是否存在 我尝试了一些建议,主要是文件系统命令,

我们生产一种用于安全行业的设备,我已经编写了实用软件来更改用户设置。有一个选项可以更新内部固件,我想知道访问我们公司网站下载部分的最佳方式,并检查是否有新版本的固件

文件格式类似于“应用程序固件VX_XX.hex”

我可以使用

WebClient myClient = new WebClient();
myClient.DownloadFile(strDownloadAddress, FileName);
但我不想循环浏览可能的文件,只是为了看看是否存在

我尝试了一些建议,主要是文件系统命令,这些命令在http上似乎不起作用


我没有编写web应用程序/服务的经验,而Global IT拒绝了我访问网站添加服务等。

我将把它作为解决您当前问题的一个非常粗糙的解决方案,我理解这是一个需要从网页检索可用更新文件列表的问题。希望能有点帮助

由于我无法访问贵公司的更新页面,我将使用一个关于古腾堡项目的页面,该页面列出儿童选集,并从中获取所有链接

首先要做的是将页面的源代码抓取到我正在调用的字符串
source

WebClient client = new WebClient();
String source = client.DownloadString(@"http://www.gutenberg.org/wiki/Children%27s_Anthologies_(Bookshelf)");
之后的一切都和桌面编程一样<代码>源代码只是要解析的一段文本。 如果您不熟悉,HTML中的链接是用
编写的,因为我们正在寻找特定的模式,所以可以用Regex将所有链接删除

Regex regex = new Regex("href=\"(http://[^\"]+)\"", RegexOptions.IgnoreCase | RegexOptions.Multiline );
var matches = regex.Matches(source);
foreach (Match match in matches)
{
    Console.WriteLine(match.Groups[1].Value);
}
该代码将输出页面上的所有链接。幸运的是,更新页面上的文件链接将是以.hex结尾的直接链接,这使正则表达式更容易定位,然后您可以根据需要对它们进行排序,并根据需要使用最新的链接获取文件


编辑:顺便说一下,有些链接是用
写的,用
'
而不是
”,有时尖括号之间会塞满更多的信息,但您的URL应该总是直接放在
href=[“]后面
part.

不用下载文件,您可以检索文件名并进行比较。如何检索文件名?从下载地址。让您的公司发布一个易于解析的可用下载列表(例如,JSON或XML),使用myClient.DownloadString()获取该列表并对其进行解析。或者,如果你必须的话,从你的下载页面下载HTML,然后直接用类似HTML的东西解析HTML。这就是我不知道如何编程的问题。没有任何网络编程经验:(