Usuário com melhor resposta
Como Comparar Arquivos de Áudio em C#

Pergunta
-
Senhores(as),
Estou com a seguinte dúvida:
Como faço para comparar dois arquivos de áudio?
Não importa a extensão.
Gostaria de passar o caminho de duas músicas na minha a plicação e ele me retornar se são iguais ou não, eu consigo fazer isso?
Desde já obrigado!
Abç.
- Tipo Alterado Olavo Oliveira NetoModerator sexta-feira, 27 de abril de 2012 11:45
Respostas
-
Renan, bom dia
Faça uam verificação através do binário do seu arquivo, pode ser lento, mas irá da certo.
const int BYTES_TO_READ = sizeof(Int64); static bool FilesAreEqual(FileInfo first, FileInfo second) { if (first.Length != second.Length) return false; int iterations = (int)Math.Ceiling((double)first.Length / BYTES_TO_READ); using (FileStream fs1 = first.OpenRead()) using (FileStream fs2 = second.OpenRead()) { byte[] one = new byte[BYTES_TO_READ]; byte[] two = new byte[BYTES_TO_READ]; for (int i = 0; i < iterations; i++) { fs1.Read(one, 0, BYTES_TO_READ); fs2.Read(two, 0, BYTES_TO_READ); if (BitConverter.ToInt64(one,0) != BitConverter.ToInt64(two,0)) return false; } } return true; }
Olavo Oliveira Neto
http://olavooneto.wordpress.com
Twitter @Olavooneto
Facebook Olavo Neto
Linkedin Olavo Neto
Se for útil marque como resposta e faça um Developer feliz :)- Sugerido como Resposta Olavo Oliveira NetoModerator quarta-feira, 2 de maio de 2012 18:03
- Marcado como Resposta Renan Rigo Calesso quarta-feira, 9 de maio de 2012 19:17
Todas as Respostas
-
Renan, bom dia
Faça uam verificação através do binário do seu arquivo, pode ser lento, mas irá da certo.
const int BYTES_TO_READ = sizeof(Int64); static bool FilesAreEqual(FileInfo first, FileInfo second) { if (first.Length != second.Length) return false; int iterations = (int)Math.Ceiling((double)first.Length / BYTES_TO_READ); using (FileStream fs1 = first.OpenRead()) using (FileStream fs2 = second.OpenRead()) { byte[] one = new byte[BYTES_TO_READ]; byte[] two = new byte[BYTES_TO_READ]; for (int i = 0; i < iterations; i++) { fs1.Read(one, 0, BYTES_TO_READ); fs2.Read(two, 0, BYTES_TO_READ); if (BitConverter.ToInt64(one,0) != BitConverter.ToInt64(two,0)) return false; } } return true; }
Olavo Oliveira Neto
http://olavooneto.wordpress.com
Twitter @Olavooneto
Facebook Olavo Neto
Linkedin Olavo Neto
Se for útil marque como resposta e faça um Developer feliz :)- Sugerido como Resposta Olavo Oliveira NetoModerator quarta-feira, 2 de maio de 2012 18:03
- Marcado como Resposta Renan Rigo Calesso quarta-feira, 9 de maio de 2012 19:17
-