我正在寻找一种方法来获取位于(例如)上的文件夹名称http://example.com/download/"foldername here"
这样做的原因是因为我有一个 ac# 程序,如果你还没有它,它总是下载一个 .zip,但目前它不会下载新版本。
示例:当前它从 下载http://example.com/download/1.0/file.zip
,如果您已经有它检查的文件夹,它不会下载它,但如果您有该文件夹,它不会从 下载http://example.com/download/2.0/file.zip
,其中包含新版本。我制作了一个包含当前版本的文件,但是如何让我的程序根据最新版本所在的文件夹检查该文件?
编辑:我修改了我的代码,所以它version.txt
首先下载一个文件并读取它的内容,其中包含最新版本的下载。
代码:
if (radUseFile.Checked)
{
//get latest version on website
WebClient modver = new WebClient();
modver.UseDefaultCredentials = true;
modver.DownloadFile("http://www.example.com/download/version.txt", tempdir _
+ "version.txt");
using (StreamReader ver = new StreamReader(tempdir + "version.txt"))
{
siteversion = ver.ReadToEnd();
}
File.Delete(tempdir + "version.txt");
if (Directory.Exists(folder))
{
if (File.Exists(folder + "\\version.txt"))
{
using (StreamReader sr = new StreamReader(folder + "\\version.txt"))
{
latestversion = sr.ReadToEnd();
}
if (latestversion != siteversion)
{
uptodate = false;
}
else
{
uptodate = true;
}
}
}
else
{
uptodate = false;
}
if (!uptodate)
{
//download and extract the files
WebClient downloader = new WebClient();
label4.Text = "Downloading full client. May take a while";
this.Update();
downloader.UseDefaultCredentials = true;
downloader.DownloadFile("http://www.example.com/download" + siteversion _
+ "/zipfile.zip", templocation + "zipfile.zip");
label4.Text = "Extracting...";
Shell32.Shell sc = new Shell32.Shell();
Directory.CreateDirectory(tempdir);
Shell32.Folder output = sc.NameSpace(tempdir);
Shell32.Folder input = sc.NameSpace(tempdir + "zipfile.zip");
output.CopyHere(input.Items(), 4);
label4.Text = "Cleaning up...";
File.Delete(tempdir + "zipfile.zip");
new Microsoft.VisualBasic.Devices.Computer().FileSystem.CopyDirectory(tempdir,_
folderlocation, true);
Directory.Delete(tempdir, true);
uptodate = true;
}
}
else
{
uptodate = true;
}
这暂时有效,但我很确定这段代码可以改进,或者关于如何采用最新版本的整个方法