Laden...

Beim Zugriff auf Netzwerkpfad ist der Wert für den Pfad ungültig

Erstellt von _Cashisclay vor 7 Jahren Letzter Beitrag vor 7 Jahren 3.267 Views
_
_Cashisclay Themenstarter:in
277 Beiträge seit 2014
vor 7 Jahren
Beim Zugriff auf Netzwerkpfad ist der Wert für den Pfad ungültig

Hat jemand damit schon Erfahrungen gemacht? Bei mir und auf der Testumgebung funktioniert es, beim Anwender nicht, die Datei wurde auch für den angegebenen Pfad hinterlegt.

Grüße

1
124 Beiträge seit 2012
vor 7 Jahren

Wahrscheinlich ist der Anwender in einem anderen Netzwerk.

_
_Cashisclay Themenstarter:in
277 Beiträge seit 2014
vor 7 Jahren

Aber wie kann er dann die Datei für den Pfad hinterlegen?

1
124 Beiträge seit 2012
vor 7 Jahren

Das verstehe ich nicht.

Ist der Datei Fest hinterlegt?
Wird der Dateipfad vom Programm gesucht?
Wird die Datei vom Benutzer ausgewählt?

Ein paar Infos und der Teil des Programmcode wäre nicht schlecht sonst kann man nur die Glaskugel bemühen.

_
_Cashisclay Themenstarter:in
277 Beiträge seit 2014
vor 7 Jahren

Sorry.

Also der Benutzer wählt eine Datei von seinem Computer aus, diese wird dann dem oben angegebenen Pfad hinterlegt, danach wird die mit Name und Icon in einer Tabelle angezeigt und kann ggf. aufgerufen werden.

Dim Benutzer As String = System.Environment.UserName

        Try

            If Not System.IO.Directory.Exists(ConfigLoader.DataPath & "\IT-Tools\Beschwerdemanagementsystem\Icons\Temp\" & Benutzer & "") Then

                ' --- Wenn der aktuelle Benutzer keinen Ordner besitzt, wird dieser nachträglich angelegt --- '

                If Not System.IO.Directory.Exists(ConfigLoader.DataPath & "\IT-Tools\Beschwerdemanagementsystem\Icons") Then System.IO.Directory.CreateDirectory(ConfigLoader.DataPath & "\IT-Tools\Beschwerdemanagementsystem\Icons")
                If Not System.IO.Directory.Exists(ConfigLoader.DataPath & "\IT-Tools\Beschwerdemanamgenetsystem\Icons\Temp") Then System.IO.Directory.CreateDirectory(ConfigLoader.DataPath & "\IT-Tools\Beschwerdemanagementsystem\Icons\Temp")

                System.IO.Directory.CreateDirectory(ConfigLoader.DataPath & "\IT-Tools\Beschwerdemanagementsystem\Icons\Temp\" & Benutzer & "")

            End If

            If Not System.IO.Directory.Exists(ConfigLoader.DataPath & "\IT-Tools\Beschwerdemanagementsystem\Files\Temp\" & Benutzer & "") Then

                ' --- Wenn der aktuelle Benutzer keinen Ordner besitzt, wird dieser nachträglich angelegt --- '

                If Not System.IO.Directory.Exists(ConfigLoader.DataPath & "\IT-Tools\Beschwerdemanagementsystem\Files") Then System.IO.Directory.CreateDirectory(ConfigLoader.DataPath & "\IT-Tools\Beschwerdemanagementsystem\Files")
                If Not System.IO.Directory.Exists(ConfigLoader.DataPath & "\IT-Tools\Beschwerdemanamgenetsystem\Files\Temp") Then System.IO.Directory.CreateDirectory(ConfigLoader.DataPath & "\IT-Tools\Beschwerdemanagementsystem\Files\Temp")

                System.IO.Directory.CreateDirectory(ConfigLoader.DataPath & "\IT-Tools\Beschwerdemanagementsystem\Files\Temp\" & Benutzer & "")

            End If

        Catch ex As Exception
            Fehlerbehandlung = New Fehlerbehandlung()
            Fehlerbehandlung.Fehlermeldung = ex
            Fehlerbehandlung.ShowDialog()
        End Try

        Try

            Using OpenFileDialog As New System.Windows.Forms.OpenFileDialog

                If OpenFileDialog.ShowDialog = Windows.Forms.DialogResult.OK Then

                    ' --- interne Variablen Deklaration --- '

                    Dim FileInfo As New System.IO.FileInfo(OpenFileDialog.FileName)

                    Dim _Info As System.IO.FileInfo

                    ' --- Dient der Prüfung ob die Datei bereits in der Tabelle hinterlegt ist --- '

                    Dim eFile As Boolean = False

                    ' --- Prüfung ob die Datei bereits im Verzeichnis hinterlegt ist --- '

                    For Each File As String In My.Computer.FileSystem.GetFiles(ConfigLoader.DataPath & "\IT-Tools\Beschwerdemanagementsystem\Files\Temp\" & Benutzer & "\")

                        Dim Info As New System.IO.FileInfo(File)

                        If FileInfo.Name = Info.Name Then

                            eFile = True

                            _Info = Info

                            Exit For

                        End If

                    Next

                    If eFile = True Then

                        ' --- Die Datei exisitert bereits unter \\192.168.88.48\Daten\IT-Tools\Beschwerdemanagementsystem\Files --- '

                        FileInfo.CopyTo(ConfigLoader.DataPath & "\IT-Tools\Beschwerdemanagementsystem\Files\Temp\" & Benutzer & "\" & _Info.Name & "", True)

                        eFile = False

                        ' --- Prüfe ob die Datei bereits in der Liste existiert --- '

                        For Each File As System.Data.DataRow In ViewModel.Dateiname.Rows

                            If File.Item("Name") = FileInfo.Name Then

                                eFile = True

                                Exit For

                            End If

                        Next

                        If eFile = False Then

                            Dim DataRow As System.Data.DataRow = ViewModel.Dateiname.NewRow

                            DataRow.Item("Dateiname") = Replace(FileInfo.FullName, FileInfo.Name, "")

                            DataRow.Item("Name") = FileInfo.Name

                            DataRow.Item("Icon") = ConfigLoader.DataPath & "\IT-Tools\Beschwerdemanagementsystem\Icons\Temp\" & Benutzer & "\" & FileInfo.Name

                            ViewModel.Dateiname.Rows.Add(DataRow)

                        End If


                    Else

                        ' --- Die Datei existiert noch nicht unter \\192.168.88.48\Daten\IT-Tools\Beschwerdemanagementsystem\Files --- '

                        FileInfo.CopyTo(ConfigLoader.DataPath & "\IT-Tools\Beschwerdemanagementsystem\Files\Temp\" & Benutzer & "\" & FileInfo.Name & "")

                        FileInfo = New System.IO.FileInfo(ConfigLoader.DataPath & "\IT-Tools\Beschwerdemanagementsystem\Files\Temp\" & Benutzer & "\" & FileInfo.Name & "")

                        Dim DataRow As System.Data.DataRow = ViewModel.Dateiname.NewRow

                        DataRow.Item("Dateiname") = Replace(FileInfo.FullName, FileInfo.Name, "")

                        DataRow.Item("Name") = FileInfo.Name

                        Dim Image As System.Drawing.Image = System.Drawing.Icon.ExtractAssociatedIcon(FileInfo.FullName).ToBitmap
                        Image.Save(ConfigLoader.DataPath & "\IT-Tools\Beschwerdemanagementsystem\Icons\Temp\" & Benutzer & "\" & FileInfo.Name & "")

                        DataRow.Item("Icon") = ConfigLoader.DataPath & "\IT-Tools\Beschwerdemanagementsystem\Icons\Temp\" & Benutzer & "\" & FileInfo.Name

                        ViewModel.Dateiname.Rows.Add(DataRow)

                    End If

                End If

            End Using

            If ViewModel.StatusID = 1 Or ViewModel.StatusID = 2 Then

                If check_Pflichtfelder() Then If ViewModel.Einordnung.Rows(ViewModel.Einordnung_SelectedIndex).Item("Einordnung") <> "Ohne Folge" Then ViewModel.StatusID = 2

            End If

        Catch ex As Exception
            Fehlerbehandlung = New Fehlerbehandlung()
            Fehlerbehandlung.Fehlermeldung = ex
            Fehlerbehandlung.ShowDialog()
        End Try
_
_Cashisclay Themenstarter:in
277 Beiträge seit 2014
vor 7 Jahren

Hallo :

Der Teil knallt :

                        Try
                            Dim Image As System.Drawing.Image = System.Drawing.Icon.ExtractAssociatedIcon(FileInfo.FullName).ToBitmap
                            Image.Save(ConfigLoader.DataPath & "\IT-Tools\Beschwerdemanagementsystem\Icons\Temp\" & Benutzer & "\" & FileInfo.Name & "")

                            DataRow.Item("Icon") = ConfigLoader.DataPath & "\IT-Tools\Beschwerdemanagementsystem\Icons\Temp\" & Benutzer & "\" & FileInfo.Name
                        Catch ex As Exception

                        End Try
_
_Cashisclay Themenstarter:in
277 Beiträge seit 2014
vor 7 Jahren

Es liegt am Netzwerkpfad.

P
19 Beiträge seit 2016
vor 7 Jahren

Hi _Cashisclay,

Vielleicht hat der Anwender die rechte auf den Pfad zuzugreifen nicht.

Wenn etwas mit dem Pfad nicht stimmt könnte der Microsoft Artikel zum Thema Microsoft Pfade helfen.

74 Beiträge seit 2014
vor 7 Jahren

Der Dateipfad darf kein UNC-Pfad sein: https://referencesource.microsoft.com/#System.Drawing/commonui/System/Drawing/Icon.cs,255. Steht auch so in der Doku.