/// <summary> /// Save ID3v1 information to file /// </summary> public void Save() { FileStreamEx fs = new FileStreamEx(_FilePath, FileMode.Open); bool HTag = fs.HaveID3v1(); if (HTag && !_HaveTag) // just delete ID3 fs.SetLength(fs.Length - 128); else if (!HTag && _HaveTag) { fs.Seek(0, SeekOrigin.End); fs.Write(GetTagBytes, 0, 128); } else if (HTag && _HaveTag) { fs.Seek(-128, SeekOrigin.End); fs.Write(GetTagBytes, 0, 128); } fs.Close(); }
/// <summary> /// Load ID3v1 information from file /// </summary> public void Load() { FileStreamEx FS = new FileStreamEx(_FilePath, FileMode.Open); if (!FS.HaveID3v1()) { FS.Close(); _HaveTag = false; return; } _Title = FS.ReadText(30, TextEncodings.Ascii); FS.Seek(-95, SeekOrigin.End); _Artist = FS.ReadText(30, TextEncodings.Ascii); FS.Seek(-65, SeekOrigin.End); _Album = FS.ReadText(30, TextEncodings.Ascii); FS.Seek(-35, SeekOrigin.End); _Year = FS.ReadText(4, TextEncodings.Ascii); FS.Seek(-31, SeekOrigin.End); _Comment = FS.ReadText(28, TextEncodings.Ascii); FS.Seek(-2, SeekOrigin.End); _TrackNumber = FS.ReadByte(); _Genre = FS.ReadByte(); FS.Close(); _HaveTag = true; }