[vb.net] Zwingende Auswahl einer bestimmten Datei
Gepostet am: Apr 28, 2011 4:39:58 PM
Mal angenommen, die benötigen für Ihre Programm eine externe Datei, die sie - beispielsweise aus urheberrechtlichen Gründen - nicht zur Verfügung stellen können. Da Ihr Programm aber auf diese Datei angewiesen ist, soll der Code solange angehalten werden, bis die entsprechende Datei ausgewählt wurde.
mustSelectFile
Public Function mustSelectFile(ByVal iniFile As String, ByVal Sektion As String, ByVal Eintrag As String, ByVal strFileName As String) As String Try Dim ini As New INIDatei(iniFile) 'verwendet die Ini-Klasse von http://dotnet-snippets.de/dns/neu-klasse-fuer-verwendung-von-ini-dateien-SID1076.aspx Dim FilePath As String = ini.WertLesen(Sektion, Eintrag) 'Prüfen, ob es einen solchen Eintrag in der ini gibt, bzw. ob die Datei existiert und ob es überhaupt die richtige ist If (FilePath = "") OrElse (System.IO.File.Exists(FilePath) = False) OrElse (LCase(New System.IO.FileInfo(FilePath).Name) <> LCase(strFileName)) Then Dim myOpenFileDialog As New OpenFileDialog Dim myFileName As String = "" Dim myFile As System.IO.FileInfo Do With myOpenFileDialog .InitialDirectory = My.Application.Info.DirectoryPath .CheckFileExists = True .Multiselect = False .Filter = strFileName & "|" & strFileName 'damit nur diese eine Datei angezeigt wird .FilterIndex = 1 .Title = "Wählen Sie bitte die Datei " & strFileName & " aus" If .ShowDialog() = DialogResult.OK Then myFileName = .FileName End If End With myFile = New System.IO.FileInfo(myFileName) Loop Until (System.IO.File.Exists(myFileName)) And (LCase(myFile.Name) = LCase(strFileName)) ini.WertSchreiben(Sektion, Eintrag, myFileName) 'damit der Pfad zurkünftig zur Verfügung steht Return myFileName Else Return FilePath 'den Pfad zurückgeben End If Catch ex As Exception LogMessage(5, "Fehler in mustSelectFile -" & iniFile & "|" & Sektion & "|" & Eintrag & "|" & strFileName & " - " & ex.Message) Return "#FEHLER" End TryEnd Function