gabrixl
Goto Top

Datei erstellen mit FIleStream - Pfadformat wird nicht unterstützt

Guten Tag liebe Community

Folgendes Problem:

Der Benutzer gibt über ein SaveFileDialog den gewünschten Dateinamen und Pfad an.
Nachdem der Dialog abgeschlossen wurden, wird ein Sub aufgerufen, welcher die Datei (.pdf) mit einem FileStream erstellt.

Wenn der Benutzer den vorgegebenen Dateinamen zum speichern ändert, heisst die Datei schlussendlich trotzdem wie nach Vorgabe. (Code 1)
Also hab ich probiert den Pfadnamen unmittelbar vor dem Aufrufen des oben genannten Subs zu initialisieren. (Code 2)

Nun sagt der FileStream aber das dass Pfadformat nicht unterstützt wird. (Error im Anhang)

Code 1:
    Private Sub saveFile()

        Dim exePath As String = Directory.GetCurrentDirectory

        With SaveFileDialog1
            .FileName = "VPN-Formular_" & Today & ".pdf"  
            .InitialDirectory = "C:\Users\" & Environment.UserName & "\Desktop"  
        End With

        Dim pdfPath As String = SaveFileDialog1.InitialDirectory & "\" & SaveFileDialog1.FileName  
        If SaveFileDialog1.ShowDialog() = DialogResult.OK Then
            If File.Exists(SaveFileDialog1.FileName) Then
                File.Delete(SaveFileDialog1.FileName)
            End If

            If Me.Visible = True Then
                getScreen(exePath)
                Form2.getScreen(exePath)
            Else
                Form2.getScreen(exePath)
                getScreen(exePath)
            End If

            If Path.HasExtension(pdfPath) And Path.GetExtension(pdfPath) = ".pdf" Then  
            Else
                pdfPath = pdfPath.Insert(pdfPath.Length, ".pdf")  
            End If

            createPDF(exePath, pdfPath)


            Application.Exit()
        End If
    End Sub


Code 2:
    
Private Sub saveFile()

        Dim exePath As String = Directory.GetCurrentDirectory

        With SaveFileDialog1
            .FileName = "VPN-Formular_" & Today & ".pdf"  
            .InitialDirectory = "C:\Users\" & Environment.UserName & "\Desktop"  
        End With


        If SaveFileDialog1.ShowDialog() = DialogResult.OK Then
            If File.Exists(SaveFileDialog1.FileName) Then
                File.Delete(SaveFileDialog1.FileName)
            End If

            If Me.Visible = True Then
                getScreen(exePath)
                Form2.getScreen(exePath)
            Else
                Form2.getScreen(exePath)
                getScreen(exePath)
            End If

            Dim pdfPath As String = SaveFileDialog1.InitialDirectory & "\" & SaveFileDialog1.FileName  
            If Path.HasExtension(pdfPath) And Path.GetExtension(pdfPath) = ".pdf" Then  
            Else
                pdfPath = pdfPath.Insert(pdfPath.Length, ".pdf")  
            End If

            createPDF(exePath, pdfPath)


            Application.Exit()
        End If
    End Sub

Weiss jemand was das Problem ist? Der Pfad ist korrekt und wenn ich den Pfad nicht unmittelbar vor dem Sub initialisiere läuft alles gut. (bis das der Dateiname beibehalten wird)

Vielen Dank im Voraus!

Lg
19-02-2018 08-24-36

Content-ID: 365197

Url: https://administrator.de/contentid/365197

Ausgedruckt am: 23.11.2024 um 18:11 Uhr

emeriks
Lösung emeriks 19.02.2018 aktualisiert um 10:47:02 Uhr
Goto Top
Hi,
die FileName-Eigenschaft enthält doch schon den vollständigen Pfad, bzw. muss damit vorkonfoguriert werden. Bau einfach mal eine MsgBox ein, welche Dir FileName anzeigt.

Außerdem: Ja, natürlich muss Du nach dem Dialog den FileName nochmal nach pdfPath kopieren, wenn Du mit letzterer Variable weiterarbeiten willst.

E.
gabrixl
gabrixl 19.02.2018 um 10:57:05 Uhr
Goto Top
Du bist King, danke emeriks!

Wusste nicht das .FileName bereits den ganzen Pfad beinhaltet... pdfPath = SaveFileDialog1.FileName hats gebracht.

Lg