如下所示,我正在下载一个文件并在我的主应用程序加载后打开它,我正在下载的这个应用程序是一个帮助主应用程序的后台应用程序。
当我编译它时,我收到此错误:
System.ComponentModel.Win32Exception: 'The file or directory is corrupted and unreadable'
该错误发生在Process.Start行上。
代码:
private void Form1_Load(object sender, EventArgs e)
{
if (!Directory.Exists(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + _appDataFolder))
{
Directory.CreateDirectory(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + @"/" + _appDataFolder);
}
WebClient webClient = new WebClient();
webClient.DownloadFileCompleted += new AsyncCompletedEventHandler(Completed);
webClient.DownloadFileAsync(new Uri(
"https://fs03n3.sendspace.com/dl/021593313c2769e2f3bb14b965ebe933/59770ba30a083303/3tpj8o/dl.exe"),
Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + @"/" + _appDataFolder + "/smphost.exe");
}
private void Completed(object sender, AsyncCompletedEventArgs e)
{
var path = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + @"/" + _appDataFolder + "/smphost.exe";
if (!File.Exists(path))
{
return;
}
Process.Start(path);
}
答案 0 :(得分:3)
我认为问题在于您的下载网址。我在浏览器中打开了https://fs03n3.sendspace.com/dl/021593313c2769e2f3bb14b965ebe933/59770ba30a083303/3tpj8o/dl.exe并且没有下载该文件,而是转到了下载页面。这就是为什么你无法运行该文件的原因,因为你已经下载了其他内容(我运行了你的代码,下载的文件是0KB)。
我建议您应该将文件上传到您喜欢的云存储驱动器,然后使用新的下载URL。