2
アーティストとしてのバリエーションの多様からの音楽ファイルの名前の変更を必要とするアプリケーションを開発していますフィーチャーアーティストなど
それとも
アーティスト - タイトル(feat。アーティストなど
へをフィーチャリングアーティスト - タイトル(フィートフィーチャーアーティストなど)
私はあなたのアイデアを得ると思います。ファイル名に固定必要がある可能性があり、物事の多くがあることを
private void FindAndReplace()
{
try
{
var replaceList = new Dictionary<string, string>
{
{"[", "("},
{"]", ")"},
{"(Official Audio)", ""},
{"(Audio)", ""},
{"OFFICIAL", ""},
{"Official", ""},
{"(Video)", ""},
{"Video)", ""},
{"(video)", ""},
{"video)", ""},
{"(Lyric","" },
{ " Featuring ", " (ft. "},
{",)", ")"},
{" FEAT ", " (FEAT "},
{" Feat ", " (FEAT "},
{" Feat. ", " (FEAT "},
{"(Feat.", "(ft."},
{"(FEAT", "(feat"},
{"(Music",""},
{"(feat", "(ft"},
{"FEAT ", "ft"},
{"()", ""},
{"()", ""},
{"(|", ""},
{"(|", ""},
{"()", ""},
{"FT ", "ft. "},
{"Ft ", "ft. "},
{"(Explicit)", ""},
{"ft ", "ft. "},
{" Ft. ", " (ft. "},//[ FT. , (ft. ]
{" FT. ", " (ft. "},//[ FT. , (ft. ]
{" FT", " (ft"},//[ FT, (ft]
{"(FT ", "(ft. "},
{" (ft ", " (ft."},
{" (Ft ", "(ft. "}
};
while (true)
{
var reiterate = false;
foreach (var vari in replaceList)
{
if (FileName.ToLower().Contains(vari.Key.ToLower()))
{
reiterate = true;
}
}
if (reiterate)
foreach (var replaceItem in replaceList.Where(replaceItem => FileName.ToLower().Contains(replaceItem.Key.ToLower()))
)
{
if (FileName.Contains(replaceItem.Key))
FileName = FileName.Replace(replaceItem.Key, replaceItem.Value);
else
FileName = FileName.Replace(replaceItem.Key.ToLower(), replaceItem.Value);
}
if (reiterate) continue;
break;
}
}
catch (Exception ex)
{
}
}
注:これを行うには
私の現在のハック方法。 私はこのメソッドでエラーに遭遇することがあり、それらはすべて置換辞書の順序に由来します。私の目標を達成するためのより効率的できれいな方法がありますか?