我正在开发一个GUI,它的主要用途是从Web上下载工具。
该应用程序预计为.Net Framework 3.5(兼容性)和工程伟大到目前为止,但在我的脑海中闪现以下问题:每次这些应用程序中的一个更改链接时,我都必须在我的项目中也更改它,这样它才能反映最新的版本/链接。
有没有可能从本地文本文件中读取链接,或者更好的是从pastbin/googledoc中读取链接,这样我就可以在外部修改链接了?
希望它是简单的把string ccleaner = "www.ccleaner.link
等.在txt文件中,并阅读它与File.ReadAllText
... App.xaml.cs:
namespace myapp
{
/// <summary>
/// Interaction logic for App.xaml
/// </summary>
public partial class App : Application
{
public void Application_Startup(object sender, StartupEventArgs e)
{
var wc = new WebClient();
var csv = wc.DownloadString("https://docs.google.com/spreadsheets/d/1IjQfWMIQyw8NuncRd91iWJD_GdWTCqrrX11pTBv1bEA/edit?usp=sharing");
var links = csv
.Split('\n') // Extract lines
.Skip(1) // Skip headers line
.Select(line => line.Split(',')) // Separate application name from download URL
.ToDictionary(tokens => tokens[0], tokens => tokens[1]);
var CCleanerLink = links["CCleaner"];
}
}
}
tools.xaml.cs(主窗口中的一个页面)
namespace myapp
{
/// <summary>
/// Interaction logic for tools.xaml
/// </summary>
public partial class tools : Page
{
public tools()
{
InitializeComponent();
}
public void downloadFile(String address, String filename)
{
WebClient down = new WebClient();
down.Headers.Add(HttpRequestHeader.UserAgent,"Mozilla/5.0 (compatible; http://example.org/)");
ServicePointManager.SecurityProtocol = (SecurityProtocolType)3072;
down.DownloadFileAsync(new Uri(address), filename);
}
private void Autor_Checked(object sender, RoutedEventArgs e)
{
downloadFile("https://live.sysinternals.com/autoruns.exe", "autoruns.exe");
}
private void Ccleaner_Checked(object sender, RoutedEventArgs e)
{
downloadFile(CCleanerLink, "ccleaner.exe");
}
}
}
1条答案
按热度按时间kulphzqa1#
您可以将最新链接存储在服务器上存储的CSV文件中,其格式类似于:
并在您的应用程序中检索它:
新的Web客户端();
要在应用程序中干净地管理URI,可以使用repository模式:
然后在事件行程常式中: