/// <summary> /// 指定した形式のMP3タグを削除します。即座に反映します。 /// </summary> /// <param name="path">ファイル名</param> /// <param name="type">タグの種類</param> /// <returns>成功した場合 true</returns> public static bool RemoveMP3Tag(string path, MP3TagType type) { path = Path.GetFullPath(path); int error = -1; lock (Native.SyncRoot) { LoadFile(path); switch (type) { case MP3TagType.ID3v1: error = Native.DeleteId3v1Tag(path); break; case MP3TagType.ID3v2: error = Native.DeleteId3v2Tag(path); break; case MP3TagType.RIFFSIF: error = Native.DeleteRMPTag(path); break; case MP3TagType.APE: error = Native.DeleteApeTag(path); break; } } if (error > 0) { throw new System.ComponentModel.Win32Exception(error); } return(error == 0); }
/// <summary> /// MP3ファイルに格納されているタグの種類を取得します。 /// </summary> /// <param name="path"></param> /// <returns></returns> public static MP3TagType GetAvailableMP3TagType(string path) { MP3TagType t = MP3TagType.None; Native.MP3TagType tagType; lock (Native.SyncRoot) { LoadFile(path); tagType = Native.GetTagType(); } if ((tagType & Native.MP3TagType.ID3V1) > 0) { t |= MP3TagType.ID3v1; } if ((tagType & Native.MP3TagType.ID3V2) > 0) { t |= MP3TagType.ID3v2; } if ((tagType & Native.MP3TagType.RIFFSIF) > 0) { t |= MP3TagType.RIFFSIF; } if ((tagType & (Native.MP3TagType.APEV1 | Native.MP3TagType.APEV2)) > 0) { t |= MP3TagType.APE; } return(t); }
/// <summary> /// 指定した形式のMP3タグを削除します。 /// </summary> /// <param name="type">タグの種類</param> /// <returns>成功した場合 true</returns> public bool RemoveMP3Tag(MP3TagType type) { return(RemoveMP3Tag(path, type)); }
/// <summary> /// 指定した種類のタグを含むかどうかを判断します /// </summary> /// <param name="t">タグの種類</param> /// <returns>含む場合 true</returns> public bool ContainsMP3Tag(MP3TagType t) { return(ContainsMP3Tag(path, t)); }
/// <summary> /// 指定した形式のMP3タグを作成します。 /// </summary> /// <param name="type">タグの種類</param> /// <returns>成功した場合 true</returns> public bool AddMP3Tag(MP3TagType type) { return(AddMP3Tag(path, type)); }
/// <summary> /// ファイルが指定した種類のタグを含むかどうかを判断します /// </summary> /// <param name="path">ファイル名</param> /// <param name="t">タグの種類</param> /// <returns>含む場合 true</returns> public static bool ContainsMP3Tag(string path, MP3TagType t) { return((GetAvailableMP3TagType(path) & t) == t); }