mp3ファイルのプロパティから情報を取得します。

任意フォルダーからmp3ファイルを取り出しますのでファイル専用クラスを作成します。


クラス名は「dofile」としましたが自由に付けてください。同時にmp3ファイルのプロパティから情報を取得するコードを記入します。


画像はファイルのプロパティです。この部分の「年」のタグを取得します。



作業のはじめに、ファイルのプロパティ値を取得するにはShell32.dllの機能を使うため、最初にShell32.dllの参照設定を行う必要があります。
メニューバーの「プロジェクト」から「参照の追加」を選択します。ダイアログの「COM」タブを選択し、「Microsoft Shell Controls And Aut omation」を選択してOKを押します。





プログラムの先頭にImports文を挿入します。
プロパティを取得するコードは次のように書きます。

Imports System
Imports Shell32
Public Class dofile
Const DIR_NME As String = "C:\test"   '任意フォルダーパス

'フォルダーからファイルのタグ情報を抽出
Public Sub search()
Dim Shell = New Shell()
Dim f As Folder = Shell.NameSpace(DIR_NME)
Dim item As FolderItem
item = f.ParseName("C:\test\test1.mp3")   'ファイルのフルパス
Dim str As String
'タグ情報
str = f.GetDetailsOf(item, 15)
MsgBox(str)
End Sub
End Class



http://www.atmarkit.co.jp/fdotnet/dotnettips/591mp3tags/mp3tags.html
ここの情報を元に書きましたが、Dim Shell = New Shell()が Dim shell As New ShellClass()になっていて、エラーになって困りました。
(だいぶハマっちゃいました)

str= f.GetDetailsOf(item, 17)の数字17の部分をいろいろ変更すると、詳細な情報が得られるようです。
上記のサイトに番号に対する取得項目が掲載されてますが、なんか違うみたいですので 今回は15を使用します。(プロパティはファイルを変更することによってによって値の項目が変わ りますので違うかもしれません)

ファイルのプロパティ情報を複数取得したい場合は下記 ↓




Class Form1からClass dofileのsearchメソッドを呼び出すコードです。実行するとMsgBoxにプロパティ 情報が表示されます。

Public Class Form1
Dim flework As New dofile    'Class dofileのインスタンス
Private Sub f() Handles MyBase.Shown
flework.search()
End Sub
End Class