Example #1
0
File: Lib.cs Project: MRoc/puremp3
        public override void Process(object obj)
        {
            FileInfo file = obj as FileInfo;

            if (TagUtils.HasTag(file))
            {
                FileInfo dstFile = new FileInfo(file.FullName + "b");

                File.Copy(file.FullName, dstFile.FullName, true);

                try
                {
                    TagUtils.WriteTag(TagUtils.ReadTag(file), dstFile);

                    bool areFilesEqual = Id3FileUtils.AreFilesEqual(
                        file.FullName, dstFile.FullName);

                    if (!areFilesEqual)
                    {
                        int  tagSize    = TagUtils.TagSize(dstFile);
                        long equalBytes = Id3FileUtils.CountEqualBytes(
                            file.FullName, dstFile.FullName);

                        Logger.WriteLine(Tokens.Info, file.FullName);
                        Logger.WriteLine(Tokens.Info, "  " + equalBytes + " bytes equal (" + tagSize + ")");

                        File.Delete(dstFile.FullName);
                    }
                }
                catch (Exception ex)
                {
                    Logger.WriteLine(Tokens.Exception, ex);
                }
                finally
                {
                    File.Delete(dstFile.FullName);
                }
            }
        }
Example #2
0
        private static void TestTagUtilsRewrite()
        {
            byte[] data     = new byte[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 };
            string fileName = VirtualDrive.VirtualFileName("TestID3TagUtilsRewrite\\t0.mp3");

            Id3FileUtils.SaveFileBinary(fileName, data);

            TagUtils.Rewrite(new FileInfo(fileName), 4, 3, 2, 1);

            Stream s = VirtualDrive.OpenInStream(fileName);

            UnitTest.Test(s.ReadByte() == 0);
            UnitTest.Test(s.ReadByte() == 0);
            UnitTest.Test(s.ReadByte() == 4);
            UnitTest.Test(s.ReadByte() == 5);
            UnitTest.Test(s.ReadByte() == 6);
            UnitTest.Test(s.ReadByte() == 7);
            UnitTest.Test(s.ReadByte() == 8);
            UnitTest.Test(s.ReadByte() == 0);
            UnitTest.Test(s.ReadByte() == -1);
            s.Close();
        }