2016-05-11 15 views
2

Ich möchte die Datei aus dem ausgewählten Verzeichnispfad in ein anderes Verzeichnis mit demselben Dateinamen kopieren. ich versuche, diesen Code,vb.net Kopieren der Datei in ein anderes Verzeichnis

Private Sub Button6_Click(sender As Object, e As EventArgs) Handles Button6.Click 

    Try 
     Dim openfile As New OpenFileDialog 
     openfile.Filter = "JPG|*.jpeg;*.jpg|PNG|*.png" 
     If (openfile.ShowDialog = Windows.Forms.DialogResult.OK) Then 
      TextBox3.Text = openfile.FileName 
     End If 
    Catch ex As Exception 
     MsgBox(ex.ToString) 
    End Try 
End Sub 

Und dann

Private Sub Button7_Click(sender As Object, e As EventArgs) Handles Button7.Click 

    Try 
     Dim source As String = TextBox3.Text 
     FileCopy(dest, source) 

    Catch ex As Exception 
     MsgBox(ex.ToString) 
    End Try 
End Sub 

Fehler msg:

"System.UnauthorizedAccessException: Zugang zu D: \ Ressource verweigert"

+1

Stellen Sie sicher, dass Sie Schreibzugriff auf den Zielordner haben. –

+0

versuchen Sie anderen Ort eher D: \ Ressource, ändern Sie D auf ein anderes Laufwerk oder geben Sie Schreibzugriff für den Benutzer, um die Operation auszuführen, richtig von @ Dr.Stitch .. – tharif

+0

Dateikopie Befehle (post CP/M) in der Regel gehen * Quelle *, * Ziel *, IME. Ich denke du hast Code, der den unkonventionellen Weg benutzt. –

Antwort

1

Ein UnauthorizedAccessException tritt in der folgenden Situation auf:

  • Der Benutzer verfügt nicht über die erforderliche Berechtigung.
  • Die Datei wird verwendet.
  • Dateipfad ist ein Verzeichnis.
  • Pfad angegeben eine schreibgeschützte Datei.
1

Ich vermute, dass Ihre Variable dest bezieht sich auf das Zielverzeichnis. Sie müssen es mit dem Dateinamen für das Ziel Dateiname, nicht Verzeichnis kombinieren. So etwas wie dies ...

Imports System.IO 
'...... 
Dim destDir As String = "D:\resource" 
Dim source As String = TextBox3.Text 
Dim destFile As String = Path.Combine(destDir, Path.GetFileName(source)) 
FileCopy(source, destFile) 

Es wäre besser, eine Variable zu verwenden, um die Dateinamen der Quelle zu speichern anstatt eine Kontrolle - wenn die TextBox nicht gesetzt ist schreibgeschützt werden, dann könnte der Benutzer versehentlich ändern es.

Verwandte Themen