OpenFileDialog - NUR Datei anzeigen
- VB.NET
Sie verwenden einen veralteten Browser (%browser%) mit Sicherheitsschwachstellen und können nicht alle Funktionen dieser Webseite nutzen.
Hier erfahren Sie, wie einfach Sie Ihren Browser aktualisieren können.
Hier erfahren Sie, wie einfach Sie Ihren Browser aktualisieren können.
Es gibt 18 Antworten in diesem Thema. Der letzte Beitrag () ist von Fortender.
-
-
TomTheCoder15 schrieb:
aber nicht den ganzen Pfad da stehen haben, sondern nur den Musik Titel
Schwer zu interpretieren Meinst du, dass du nur den Dateinamen aus einem Pfad möchtest?
Dann guck dir das mal an:
msdn.microsoft.com/de-de/libra…etfilename(v=vs.110).aspx
msdn.microsoft.com/de-de/libra…textension(v=vs.110).aspx -
Das hier geht auch noch: OpenFileDialog.SafeFileName-Eigenschaft
Ist dann allerdings mit Dateiendung.KaskadekingDE on GitHub
Bitte keine Fragen über Programmierung per PN! Dafür ist das Forum hier.
Who cares? ¯\_(ツ)_/¯
-
Guten Morgen TomTheCoder15
Versuchs mit einer Funktion. ZB. etwa so....
VB.NET-Quellcode
- Shared Function OpenDialogEx(ByVal strDBFileName As String, _
- ByVal frmDlgOwner As Form, _
- Optional ByVal strFilterDTyp As String = Nothing, _
- Optional ByVal strDateiBez As String = Nothing) As String
- Dim FDlg As New OpenFileDialog
- If IsNothing(strFilterDTyp) Then strFilterDTyp = """...""" & " *."
- If IsNothing(strDateiBez) Then strDateiBez = "Datei *."
- With FDlg
- .CheckFileExists = True
- .InitialDirectory = .....
- .Filter = ....
- .Multiselect = False
- .FilterIndex = 0
- If .ShowDialog(frmDlgOwner) = Windows.Forms.DialogResult.OK Then
- ....
- Else ....
- End If
- .Dispose()
- End With
- End Function
Freundliche Grüsse
exc-jdbi -
Frei ausm Bauch raus würde ich solch eine Funktion coden:
Edit:
Man müsste die Funktion noch so abändern, dass es bei Dateien mit keiner Extension nicht zu Randeffekten kommt.
Hab ich jetzt mal abgeändert. Wie VincentTB schon gesagt hat gibts da schon ne eigene Funktion. Demnach unnötig.
Path.GetFileNameWithoutExtension
MfG TimDieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Fortender“ ()
-
@Fortender
Wird einen Fehler geben, wenn die Datei keine Extension hat. Und wieso das Rad neu erfinden, wenn es exakt so eine Funktion schon gibt?Path.GetFileNameWithoutExtension
-
@VincentTB
Die Funktion hab ich nicht mehr gefunden. Wusste die Klasse nicht mehr. Dankeschön. Ja hast Recht war schon am editieren
Es wird auch keinen Fehler zurückgeben. Aber es kommt zu Randeffekten. Die Extension ist dann leer und es würde immer
das letzte Zeichen des Namens verschluckt werden.Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Fortender“ ()
-
-
Anstatt
ListBox.Items.Add(OpenFileDialog.Filename)
machst duListBox.Items.Add(Path.GetFileNameWithoutExtension(OpenFileDialog.Filename))
-
-
-
TomTheCoder15 schrieb:
in einer Listbox nur der Titel von dem Lied steht und nicht der Pfad.
Heute lernen wir die PropertyDisplayMember
der ListBox, dazu übergeben wir ihr dieFileInfo
-Instanzen der selektierten Dateien:
Spoiler anzeigen VB.NET-Quellcode
- Public Class Form1
- Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
- Using dlg = New OpenFileDialog
- dlg.Filter = "Musik|*.wav;*.mp3|Alle Dateien|*.*"
- dlg.Multiselect = True
- If dlg.ShowDialog <> Windows.Forms.DialogResult.OK Then
- Return
- End If
- Dim ll = New List(Of IO.FileInfo)
- For Each file In dlg.FileNames
- ' Dateinamen mit Pfad in FileInfo konvertieren
- ll.Add(New IO.FileInfo(file))
- Next
- ' an die Listbox binden
- Me.ListBox1.DataSource = ll
- End Using
- ' das richtige anzeigen
- Me.CheckBox1_CheckedChanged(CheckBox1, EventArgs.Empty)
- End Sub
- Private Sub CheckBox1_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox1.CheckedChanged
- ' die gewählte Property anzeigen
- If CheckBox1.Checked Then
- Me.ListBox1.DisplayMember = "Name"
- Else
- Me.ListBox1.DisplayMember = "FullName"
- End If
- End Sub
- End Class
Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch
Ein guter .NET-Snippetkonverter (der ist verfügbar).
Programmierfragen über PN / Konversation werden ignoriert! -
VB.NET-Quellcode
-
- function GetFile as string
- dim m_openFile as new OpenFileDialog()
- with m_openFile
- .AutoUpgradeEnabled = true
- .CheckFileExists = true
- .CheckPathExists = true
- .Filter = "MP3 Files|*.mp3|All Files|*.*"
- .InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.Documents)
- .Title = "Choose your Music"
- end with
- m_openFile.ShowDialog(me)
- return m_openFile.SafeFileName
- end function
"Nichts ist unendlich, bis auf die menschliche Dummheit" - Albert Einstein
"Man sollte nicht alles vertrauen, was im Netz steht" - Abraham Lincoln -
VB.NET-Quellcode
- Function chooseFile(parentForm As Form) As FileInfo
- Using ofd As New OpenFileDialog With {.AutoUpgradeEnabled = True, .CheckFileExists = True, _
- .CheckPathExists = True, .Filter = "MP3 Files(*.mp3)|*.mp3", _
- .InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyMusic), _
- .Title = "Choose your music"}
- If ofd.ShowDialog(parentForm) = DialogResult.OK Then
- Return New FileInfo(ofd.FileName)
- Else
- Return Nothing
- End If
- End Using
- End Function
@BeatsleigherXDA
Ich erlaube mir mal deinem Code zu verbessern
Ich finde es praktisch, wenn die Funktion direkt eine FileInfo-Klasse returned, da hat man direkt "alle" Informationen zur Datei mit bei. Was würde bei deinem Code passieren, wenn der Dialog nicht mit OK oder gleichem abgeschlossen werden würde? Das muss man behandeln. Den Rest hab ich einfach stylistisch bisschen angepasst.
Hab den Code ausm Kopf geschrieben, deshalb dürfen Fehler ausgebessert und/oder behalten werden.
MfG TimDieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Fortender“ ()
-
ich nutze immer den Designer, also ziehe einen OFD aufs Form und richte den ein.
Hat den Vorteil, dass wenn man ihn mehrmals benutzt, dasser dann auf dem Ordner öffnet, wo man bereits die letzte Datei raus gewählt hat.
Ausserdem braucht man keine weiteren Variablen, um das Ergebnis zu speichern - merkt sich ja der OFD.
Eine Extra-Funktion zum Wählen einer Datei wird dadurch üflüssig.
Ach guck - ist hier ja auch gezeigt: Keine Strings in die File-Listbox! -
ErfinderDesRades schrieb:
Hat den Vorteil, dass wenn man ihn mehrmals benutzt, dasser dann auf dem Ordner öffnet, wo man bereits die letzte Datei raus gewählt hat.
Das macht der imUsing
erzeugte OFD ebenfalls.
Falls Du an mehreren Stellen einen OFD benötigst, gehe ich davon aus, dass verschiedene Properties gesetzt werden, sonst bräuchtest Du nicht mehrere Stellen. Da musst Du höllisch aufpassen, dass Du bei jedem Aufruf die Properties korrekt setzt, sonst sind die des anderen Aufrufs aktuell.Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch
Ein guter .NET-Snippetkonverter (der ist verfügbar).
Programmierfragen über PN / Konversation werden ignoriert! -
Fortender schrieb:
VB.NET-Quellcode
- Function chooseFile(parentForm As Form) As FileInfo
- Using ofd As New OpenFileDialog With _
- {.AutoUpgradeEnabled = True, .CheckFileExists = True, .CheckPathExists = True, .Filter = "MP3 Files(*.mp3)|*.mp3", .InitialDirectory = Environments.GetFolderPath(Environment.SpecialDirectories.Music), .Title = "Choose your music"}
- If ofd.ShowDialog(parentForm) = DialogResult.OK Then Return New FileInfo(ofd.FileName)
- End Using
- Return Nothing
- End Function
@BeatsleigherXDA
Ich erlaube mir mal deinem Code zu verbessern
Es sollte keine perfekte Lösung in dem Sinne sein, sondern ein Schritt in die richtige Richtung :p
Dass da syntaktisch vieles nicht korrekt war - mein Fehler. Ich benutze VB nicht, weil es mir zu kompliziert ist (es macht alles einfach umständlich) :p"Nichts ist unendlich, bis auf die menschliche Dummheit" - Albert Einstein
"Man sollte nicht alles vertrauen, was im Netz steht" - Abraham Lincoln -
RodFromGermany schrieb:
ErfinderDesRades schrieb:
Hat den Vorteil, dass wenn man ihn mehrmals benutzt, dasser dann auf dem Ordner öffnet, wo man bereits die letzte Datei raus gewählt hat.
Das macht der imUsing
erzeugte OFD ebenfalls.
Weil jetzt hab ich zuerst mittm FolderBrowserDialog getestet, der macht das nicht. Der OpenFileDialog aber doch. -
BeatsleigherXDA schrieb:
Es sollte keine perfekte Lösung in dem Sinne sein, sondern ein Schritt in die richtige Richtung :p
Schon klar
Hab nochmal den Post bearbeitet, da ich die Einrückung und Übersicht ein wenig verkackt hab. Ist halt blöd das Ganze mit dem Handy
zu schreiben und dann noch ohne Syntax-Highlighting und IntelliSense ausm Kopf.
Ich wollte auch nicht hier ein Meisterwerk draus machen, sondern das was ich gesehen habe, nur ein wenig anpassen
MfG
-
Ähnliche Themen
-
Fabian112 - - Sonstige Problemstellungen
-
8 Benutzer haben hier geschrieben
- Fortender (5)
- VincentTB (3)
- TomTheCoder15 (3)
- RodFromGermany (2)
- ErfinderDesRades (2)
- BeatsleigherXDA (2)
- KaskadekingDE (1)
- exc-jdbi (1)