2017-07-25 44 views
-3

正如你可以看到下面我正在下载一个文件,并打开它,一旦我的主应用程序已加载,我下载的这个应用程序是一个后台应用程序,可以帮助主应用程序。文件无法打开,因为它的损坏或无法读取?

当我编译它,我收到此错误:

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); 
} 
+1

您可以手动启动下载的可执行文件吗? –

+6

为什么这个问题用C++标记,如果没有C++代码? –

+0

@RomanoZumbé显然不是,如果这是我的情况。我标记了C++,因为我认为这可能是一个普遍问题,不仅仅是C#,而是Windows中的其他编程语言。 – Beefo

回答

3

我认为这个问题是与你的下载网址。我在浏览器中打开了https://fs03n3.sendspace.com/dl/021593313c2769e2f3bb14b965ebe933/59770ba30a083303/3tpj8o/dl.exe,它没有下载该文件,而是转到下载页面。这就是为什么你不能运行该文件,因为你已经下载了其他东西(我运行了你的代码,下载的文件是0KB)。

我建议你应该做的是将文件上传到你最喜欢的云存储驱动器,然后使用新的下载URL。

+0

谢谢,我刚刚注意到了这一点。 – Beefo

+0

这就是为什么我问你是否可以手动打开应用程序。显然你没有检查 –

相关问题