2016-06-21 6 views
0

Ich habe ein Problem, wo eine Datei nicht herunterladen wird, obwohl es als abgeschlossen angezeigt wird.Datei wird nicht heruntergeladen, obwohl sie sagt, dass es

Die Datei wird nicht an dem Ort angezeigt, an den sie heruntergeladen werden soll.

Dies ist mein Code:

private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e) 
{ 
    if(e.ColumnIndex == 2) 
    { 
     int rowIndex = e.RowIndex; 
     DataGridViewRow row = dataGridView1.Rows[rowIndex]; 
     string value1 = row.Cells[2].Value.ToString(); 
     wc.DownloadFileCompleted += new AsyncCompletedEventHandler(AtlasCompleted); 
     Uri fileUrl = new Uri(value1); 
     Beta = fileUrl; 
     //Console.WriteLine(FormPopup.Variables.Location1.Length); 
     if (FormPopup.Variables.Location1 != null && FormPopup.Variables.Location1.Length >= 5) 
     { 
      Console.WriteLine(FormPopup.Variables.Location1); 
      Console.WriteLine(fileUrl); 
      wc.DownloadFileAsync(fileUrl, FormPopup.Variables.Location1); 
      //MessageBox.Show(fileUrl.ToString() + "    " + FormPopup.Variables.Location1); 
     } 
     else 
     { 
      MessageBox.Show("Error: No file location specified."); 
      FormPopup form = new FormPopup(); 
      form.Show(this); 
     } 

    } 
} 

private void AtlasCompleted(object sender, AsyncCompletedEventArgs e) 
{ 
    MessageBox.Show(Beta.ToString() + "    " + FormPopup.Variables.Location1); 
} 

Die Datei herunterladen soll, aber es ist nicht das Herunterladen oder in der Lage erscheinen, angegeben.

Wenn jemand helfen kann, wäre das toll, es ist wirklich verwirrend.

Danke für die Antworten: D

+0

Wo geben Sie den Pfad zum Speichern der Datei an? Wird AtlasCompleted aufgerufen? –

+0

Ich gebe den Pfad in einer anderen Form an, er wird unter FormPopup.Variables.Location1 gespeichert, er zeigt den korrekten Pfad und AtlasCompleted wird aufgerufen, aber die Datei ist nicht zu finden. – ZiiM

+0

Ich habe eine Sache bemerkt, das Programm scheint es sofort abzuschließen. Es scheint keine Zeit zu dauern. – ZiiM

Antwort

0

Der Code WebClient ist in Ordnung, und es sollte die Datei ohne Probleme herunterladen. Stellen Sie einfach sicher, dass Ihre Datei Uri korrekt ist (fügen Sie die URL in den Browser ein und sehen Sie, ob sie korrekt ist). Der Pfad zum Speichern der Datei auf dem lokalen System sollte gültig sein (Ordner, die im Pfad enthalten sind, müssen vorhanden sein) und reguläre Benutzer müssen Schreibberechtigungen besitzen.

es zu testen weiter, zuerst die hartcodierte verwenden, um Werte:

wc.DownloadFileAsync("File Uril","File path at local system"); 

Beispiel:

wc.DownloadFileAsync(new Uri("http://example.com/myfile.txt"), @"d:\myfile.txt"); 

Verdoppeln Sie Ihre Variablen für Uri und den Ort überprüfen, weil es keine Magie, die das Herunterladen würde verhindern neben ungültigen Parametern.

Fügen Sie außerdem einige Fehlerprotokollierung/Ausnahmebehandlung hinzu, damit es Ihnen sagt, was passiert ist.

private void AtlasCompleted(object sender, AsyncCompletedEventArgs e) 
{ 
if(e.Error !=null) 
    Console.WriteLine(e.Error.Message); 
    else 
    Console.WriteLine("Completed"); 

    MessageBox.Show(Beta.ToString() + "    " + FormPopup.Variables.Location1); 
}