2017-07-25 127 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

這就是爲什麼我問你是否可以手動打開應用程序。顯然你沒有檢查 –

相關問題