WebClient Download schlägt fehl

Spion90009se

Grünschnabel
Hallo,

Ich habe derzeit ein Problem mit dem VB WebClient ich hole mir mit XML die URL den Namen der datei mit Relativen Pfad also z.B
BGM/sound.mp3.
Dann ersetze ich für die Locale Datei "/" mit "\"
Aber der WebClient weigert sich Ordner anzulegen beim Download einer Datei.
Und das ist ziemlich unvorteilhaft bei einem Patcher :(
Hier mein Code:
PHP:
                    Try
                        MyWebClient.DownloadFile(patchurl & File & nameAttribute, nameAttribute.Replace("/", "\"))
                    Catch ex As System.Exception
                        MessageBox.Show("Exception : " + ex.Message)
                    End Try

Falls jemand eine Lösung für mich hat wäre ich wirklich sehr dankbar.
MfG
Nover
 

Spion90009se

Grünschnabel
PHP:
                        Dim Folder As String
                        Folder = System.IO.Path.GetDirectoryName(Application.StartupPath + "\" + nameAttribute.Replace("/", "\"))
                        If Dir(Application.StartupPath + Folder, vbDirectory) = "" Then
                            MkDir(Folder)
                        End If
Ist mein Aktueller Code gibt mir allerdings eine Zugriffs Exception aus ...
Naja ich versuche mal weiter ne Methode zufinden^^
Mir ist aufgefallen die Ordner erstellt er jetzt allerdings kommt der Zugriffsfehler bei allen Dateien
 
Zuletzt bearbeitet:

Alexander Schuc

crazy-weasel
Du brauchst nicht nochmal Application.StartupPath mit Folder verknüpfen. GetDirectoryName liefert dir einen kompletten Pfad!
Was genau steht denn eigentlich in nameAttribut drinnen?

Code:
import System.IO

Dim Folder As String 
Folder = Path.GetDirectoryName(Path.Combine(Application.StartupPath, nameAttribute)) 

If Not Directory.Exists(Folder) Then 
   Directory.Create(Folder)
End If

So schauts glaub ich ein wenig besser aus, aber je nachdem was in nameAttribute steht, könnte der Path.Combine aufruf etwas ungewolltest zurück kommen. (in diesem Fall darf nameAttribute keinen absoluten Pfad gespeichert haben)
 

Spion90009se

Grünschnabel
Du brauchst nicht nochmal Application.StartupPath mit Folder verknüpfen. GetDirectoryName liefert dir einen kompletten Pfad!
Was genau steht denn eigentlich in nameAttribut drinnen?

Code:
import System.IO

Dim Folder As String 
Folder = Path.GetDirectoryName(Path.Combine(Application.StartupPath, nameAttribute)) 

If Not Directory.Exists(Folder) Then 
   Directory.Create(Folder)
End If

So schauts glaub ich ein wenig besser aus, aber je nachdem was in nameAttribute steht, könnte der Path.Combine aufruf etwas ungewolltest zurück kommen. (in diesem Fall darf nameAttribute keinen absoluten Pfad gespeichert haben)
In nameAttribute stehen Dateinamen und Relative Pfade hie ein parr Beispiele:
BGM/name.mp3
imports/__main__.pyc
pack/Main.epk
start.exe

Aber der Code den du gepostet hast Funktioniert.
Danke vielmals