[Tutorial] Datei-Informationen auslesen

    • VB.NET

      [Tutorial] Datei-Informationen auslesen

      Hallo Community,

      da ich letztens große Probleme beim auslesen von Informationen einer Datei hatte werde ich hier ein kurzes Tutorial schreiben.

      Für das Tutorial wird folgendes benötigt:

      Eine Textbox
      Ein Button

      Für dieses Tutorial wird ein Verweis auf die shell32.dll Datei benötigt. (Zu finden unter Verweis hinzufügen - COM - Microsoft Shell Controls and Automation)


      Als erstes Importieren wir System.IO

      VB.NET-Quellcode

      1. Imports System.IO


      Nun kommt ins Button_Click Event folgendes:

      VB.NET-Quellcode

      1. Dim ofd As New OpenFileDialog
      2. If ofd.ShowDialog = Windows.Forms.DialogResult.OK Then
      3. Dim Shell As New Shell32.Shell
      4. Dim Folder As Shell32.Folder = Shell.NameSpace(Path.GetDirectoryName(ofd.FileName))
      5. Dim FolderItem As Shell32.FolderItem = Folder.ParseName(Path.GetFileName(ofd.FileName))
      6. For i = 0 To 300
      7. Application.DoEvents()
      8. TextBox1.Text &= i & " " & Folder.GetDetailsOf(FolderItem, i) & vbNewLine
      9. Next
      10. End If


      Dazu eine kurze Erklärung:

      Es wird ein OpenFileDialog aufgerufen, mit dem man die zu analysierende Datei auswählen kann.

      In die Textbox werden nun alle Informationen der Datei geschrieben (For i = 0 To 300)

      Diese For Schleife dient nur dazu um zu Erfahren welchen Integer Wert die gesuchte Information hat.

      So kann man zum Beispiel auslesen, dass der Wert 1 die Dateigröße ausgibt oder z.B. der Wert 28 die Bitrate einer Mp3 Datei.

      Nehmen wir mal an wir wollen die Bitrate einer MP3 Datei in einer MessageBox ausgeben.
      Dafür müssen wir folgendes schreiben.

      VB.NET-Quellcode

      1. Dim ofd As New OpenFileDialog
      2. If ofd.ShowDialog = Windows.Forms.DialogResult.OK Then
      3. Dim Shell As New Shell32.Shell
      4. Dim Folder As Shell32.Folder = Shell.NameSpace(Path.GetDirectoryName(ofd.FileName))
      5. Dim FolderItem As Shell32.FolderItem = Folder.ParseName(Path.GetFileName(ofd.FileName))
      6. MessageBox.Show(Folder.GetDetailsOf(FolderItem, 28), "Bitrate")
      7. End If



      Ich hoffe das Tutorial ist verständlich.

      Bei Fragen einfach kommentieren.

      mfg Mike