ソニーのウォークマン(WALKMAN) NW-X1060(NW-X1000シリーズ) では、フォルダ単位での再生・管理ができません。
MP3のタグ情報(アーティスト名、アルバム名)単位での管理、再生のみ対応しています。
そこで、「アーティスト名」に「フォルダパス名」をセットすることで、フォルダ単位で管理・再生できるスクリプトを作ってみました。
※ バージョン1.10(2009年11月26日)アップグレードすると、フォルダ検索・再生に対応しています。
H:\MUSIC>Regsvr32 cddbcontrol.dll
HKEY_CLASSES_ROOT\CDDBControl.CddbID3Tag
※ DLLをレジストリに登録する場合には、「管理者権限」モードで実行する必要があります。
Option Explicit
' ファイルを表示するフォルダを指定
Private Const TARGETFOLDER = "."
Call Main()
WScript.Quit 0
' メイン関数
Sub Main()
Dim objFS, objFolder, objId3
' FileSystemObject オブジェクトを作成する
Set objFS = CreateObject("Scripting.FileSystemObject")
' CddbID3Tag オブジェクトを作成する
Set objId3 = CreateObject("CDDBControl.CddbID3Tag")
' 指定フォルダ情報を取得する
Set objFolder = objFS.GetFolder( TARGETFOLDER )
Call FindFilePathAll(objFolder, objId3)
Set objFS = Nothing
Set objId3 = Nothing
End Sub
' 全フォルダのファイルを検索する
Sub FindFilePathAll(ByVal objFolder, ByVal objId3)
Dim objFile, files, subfolders, objSub
Set files = objFolder.Files
' フォルダ中のファイル毎に処理を行う
For Each objFile In files
Call EditTagOfMP3(objFile, objId3)
Next
' サブフォルダに対して再帰処理
Set subfolders = objFolder.SubFolders
For Each objSub In subfolders
Call FindFilePathAll(objSub, objId3)
Next
End Sub
' MP3のタグ情報を編集する
Sub EditTagOfMP3(ByVal objFile, ByVal objId3)
' フォルダ中の mp3 ファイルだけを取得する
If LCase(Right(objFile.Name, 4)) = ".mp3" Then
objId3.LoadFromFile objFile.Path, False
objId3.Clear
' アルバム名にファイルパスを入力する
objId3.Album = Left(objFile.Path, _
Len(objFile.Path) - Len(objFile.Name))
objId3.Commit
End If
End Sub
50行程度のスクリプトなので、容易に理解できると思います。各自で好きなようにカスタマイズして利用してください。