Moin!
ich möchte mehre Verzeichnisse anlegen und habe mir dafür eine Funktion geschrieben:
Das Problem beginnt in Zeile 30, wenn der erste Teil des Pfades mit \\srv105 beginnt.
Directory.Exists sagt dann, dass dieses Laufwerk nicht da ist - stimmt nicht. Den Server gibt es.
Hat einer von Euch eine "intelligentere" Lösung für mich.
Es kann nun natürlich auch sein, dass die ersten Ebenen für den Bearbeiter nicht verfügbar sind - dann aber wieder ab Ebene x....
Bin gespannt - mehr ist mir bisher nicht eingefallen.
Gruß Jan
ich möchte mehre Verzeichnisse anlegen und habe mir dafür eine Funktion geschrieben:
VB.NET-Quellcode
- ''' <summary>
- ''' Verzeichnis anlegen mit fehlenden Unterverzeichnissen
- ''' </summary>
- ''' <param name="Pfad">Pfad</param>
- ''' <param name="Log">optional Log-Klasse (default=nothing)</param>
- ''' <returns>-1 ... kein Pfad angegeben / 0 ... Fehler / 1 ... erfolgreich</returns>
- ''' <remarks></remarks>
- Public Function MakeDirectories(ByVal Pfad As String, Optional ByRef Log As EBL.Service.Log = Nothing) As Integer
- ' ------ http://ma22-wiki-001/eblwiki/index.php?title=FolderAndFile_(Klasse_von_EBL.Service)#Verzeichnis-Struktur_anlegen ------
- Dim Result As Integer = 0
- Dim TestPfad As String = "[undef]"
- If Pfad.Length = 0 Then
- Return -1
- End If
- Try
- If System.IO.Directory.Exists(Pfad) = True Then
- Return 1
- End If
- Dim Folder As String() = Pfad.Split({"\"}, StringSplitOptions.RemoveEmptyEntries)
- Dim UNC_Prefix As String = ""
- If Pfad.Length > 2 Then
- If Pfad.Substring(0, 2) = "\\" Then UNC_Prefix = "\\"
- End If
- TestPfad = UNC_Prefix & Folder(0)
- If System.IO.Directory.Exists(TestPfad) = False Then
- Dim Msg As String = "Ungültiges Startlaufwerk:= " & TestPfad
- If Pfad.Length > 2 Then Msg += " (mögliches Problem mit UNC-Pfad!)"
- If IsNothing(Log) Then
- _TryReport.Show(Msg)
- Else
- Log.WriteAsError(Msg)
- End If
- Return 0
- End If
- For i As Integer = 1 To Folder.Count - 1
- TestPfad += "\" & Folder(i)
- If System.IO.Directory.Exists(TestPfad) = False Then
- Try
- System.IO.Directory.CreateDirectory(TestPfad)
- Catch ex As Exception
- Dim Msg As String = "Fehler beim Anlegen eines Verzeichnisses" & "TestPfad:= " & TestPfad
- If Not IsNothing(Log) Then
- _TryReport.Show(Msg, ex.ToString)
- Else
- Log.WriteAsError(Msg & vbCrLf & ex.ToString)
- End If
- Exit For
- End Try
- End If
- Next
- 'abschliesssende Prüfung
- If System.IO.Directory.Exists(Pfad) = True Then Result = 1
- Catch ex As Exception
- Dim Msg As String = "unvorhergesehener Fehler in der Funktion EBL.Service > FolderAndFile > MakeDirectories" & vbCrLf &
- "Pfad:= " & Pfad & vbCrLf & _
- "TestPfad:= " & TestPfad
- If Not IsNothing(Log) Then
- _TryReport.Show(Msg, ex.ToString)
- Else
- Log.WriteAsError(Msg & vbCrLf & ex.ToString)
- End If
- End Try
- Return Result
- End Function
- End Class
Das Problem beginnt in Zeile 30, wenn der erste Teil des Pfades mit \\srv105 beginnt.
Directory.Exists sagt dann, dass dieses Laufwerk nicht da ist - stimmt nicht. Den Server gibt es.
Hat einer von Euch eine "intelligentere" Lösung für mich.
Es kann nun natürlich auch sein, dass die ersten Ebenen für den Bearbeiter nicht verfügbar sind - dann aber wieder ab Ebene x....
Bin gespannt - mehr ist mir bisher nicht eingefallen.
Gruß Jan