Skip to content

Clear all tags then tag from filename/path and/or rename/class from tags #5

@CyberSinh

Description

@CyberSinh
// Clear all tags then tag from filename/path and/or rename/class from tags

using Metatogger.Business;
using Metatogger.Data;

foreach (var file in files)
{	
	// 1. Supprime tous les tags
	foreach (var tag in file.GetAllTags())
	   file.SetTag(tag.Key, null);
			
	// 2.1 Récupère le nom de l'artiste et du titre du morceau depuis le nom de fichier
	var tags = TagProcessor.TagFromFilename("|artist| - |title|", file);

        // 2.2 Récupère le nom de l'artiste et du titre du morceau depuis le chemin du fichier
	var tags2 = TagProcessor.TagFromPath(@"|artist|\|album|", file);        
	
	// 3. Copie le nom de l'artiste récupéré depuis le nom du fichier dans le tag ARTIST et ORIGINALARTIST
	if (tags.ContainsKey(TagName.Artist))
	{
	   string artist = tags[TagName.Artist][0];
	   file.SetTag(TagName.Artist, artist);
	   file.SetTag(TagName.OriginalArtist, artist);
	}
	
	// 4. Copie le titre de l'album récupéré dans le tag ALBUM
	if (tags2.ContainsKey(TagName.Album))
           file.SetTag(TagName.Album, tags2[TagName.Album][0]);

        // 5.1 Nouveau nom de fichier basé sur les tags
        string newFilename = TagProcessor.RenameFromTags("<|artist| - ><[|album| #|tracknumber|] >|title|", file);
        if (newFilename != null)
           file.OutputFilename = newFilename ;

        // 5.2 Nouveau chemin basé sur les tags
        string newPath = TagProcessor.PathFromTags(@"%MYMUSIC%\|codec|\|artist|\<|date| - >|album|", file);
        if (newPath != null)
        {
           file.OutputPath = newPath ;
           file.FileProcess = FileProcess.Move; // FileProcess.Copy / FileProcess.SoftLink
        }
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions