Я пытаюсь обновить метаданные песни с помощью taglib-sharp
и powershell
. Он отлично работает для большинства файлов, но есть ошибки в некоторых wma
файлах (хотя я могу воспроизводить эти файлы).
# Load the tag-lib assembly
[Reflection.Assembly]::LoadFrom( (Resolve-Path ("D:\zic\lib\taglib-sharp.dll")))
# Load up the song file and its metadata
$path_file="D:\zic\misc\Artist_Title.wma"
$song = [TagLib.File]::Create((resolve-path $path_file))
$file_name = [System.IO.Path]::GetFileNameWithoutExtension($path_file)
$file_name_array=$file_name.Split("_")
$artist=$file_name_array[0]
$title=$file_name_array[1]
#set the artist and title (metadata)
$song.Tag.Artists = $artist
$song.Tag.AlbumArtists = $artist
$song.Tag.Title = $title
# Save the metadata
$song.Save()
Ошибка появляется при сохранении файла:
Это проблема powershell
? Проблема taglib-sharp
? Я использую taglib_sharp
версии 2.0.50727 и powershell
версии 5.1.16299.248.
ИЗМЕНИТЬ
С попыткой поймать, чтобы показать ошибку:
# Save the metadata
try
{
$song.Save()
}
catch [Exception]
{
Write-Host $_.Exception|format-list -force
}
В консоли отображается:
ИЗМЕНИТЬ 2
Если я редактирую теги вручную (правый клик по файлу -> свойства) или переименовываю файл, программа запускается без проблем и теги обновляются. Странный!
taglib-sharp
. Осмотрите$Error[0].Exception.StackTrace
, чтобы увидеть, где в коде все это падает - person Mathias R. Jessen   schedule 21.02.2018Artist_Artists.wma
, верно? Посмотрите на фактическое имя файла одного из файлов, который вызывает исключение, и одного, который этого не делает. - person Fᴀʀʜᴀɴ Aɴᴀᴍ   schedule 24.02.2018