Aufruf z.B.: txtPDFTKPath.Text = alg.GetSystemFile("pdftk")
'''''' <summary>
'''''' Stellt fest, ob in den Systemverzeichnissen eine Datei vorhanden ist
'''''' und WO sie vorhanden ist.
'''''' Aufruf Beispiel:
'''''' txtPDFTKPath.Text = alg.GetSystemFile("pdftk")
'''''' </summary>
'''''' <param name="FileName">
'''''' Dateiname mit oder ohne Erweiterung "pdftk" ODER "pdftk.exe"
'''''' </param>
'''''' <param name="extension">
'''''' Die Dateiendung z.B.: .exe ODER exe ("." wird automatisch hinzugefügt)
'''''' </param>
'''''' <param name="DefaultFullPath">
'''''' Der Standardwert der zurückgegeben wird, falls NICHTS gefunden wurde.
'''''' </param>
'''''' <returns></returns>
'''''' <remarks></remarks>
Public Function GetSystemFile(ByVal FileName As String, Optional ByVal extension As String = ".exe", Optional ByVal DefaultFullPath As String = "") As String
Dim ext As String = extension
If ext <> "" AndAlso Not ext.StartsWith(".") Then ext = "." & ext
If FileName.EndsWith(ext) Then ext = ""
Dim environmentVariables As IDictionary = Environment.GetEnvironmentVariables()
Dim de As DictionaryEntry
For Each de In environmentVariables
If de.Key = "Path" Then
Dim splt() As String
splt = de.Value.ToString.Split(";")
For i As Integer = 0 To splt.Length - 1
Dim combined As String = splt(i)
If combined <> "" AndAlso Not combined.EndsWith("") Then combined = combined & """"
Alte URL:
/snippet/wie-in-der-cmd-pfad-zu-datei-ermitteln-anhand-des-exe-namens/1095
Interessante Idee, aber ein paar Anmerkungen zum Code an sich:
1.) Der Code ist Option Strict Off
2.) Die Environment.GetEnvironmentVariable dürfte effektiver sein als
das Durchlaufen aller Environment-Variablen.
http://msdn.microsoft.com/de-de/library/77zkk0b6.aspx
3.) Statt einer MessageBox solltest du die Exception nach außen
weiter leiten.