¿Cómo puedo determinar que un archivo en particular (que puede o no tener una extensión de archivo ".mp3") es en realidad un archivo MP3? Deseo hacer esto en C#.¿Cómo puedo determinar que un archivo en particular es en realidad un archivo MP3?
Respuesta
- usando extensión de archivo no es fiable.
- la mejor librería que puede usar es https://github.com/mono/taglib-sharp detecta la mayoría de los tipos de archivos comunes. tal vez solo quieras mp3, para que puedas extraer cualquier clase relacionada con mp3.
- una biblioteca simple que puede utilizar es https://github.com/judwhite/IdSharp
Los archivos a menudo comienzan con un "número mágico" para identificar el formato de datos. Dependiendo del formato, un archivo comienza con una cierta secuencia de bytes que es única para ese formato. No hay un estándar a seguir, por lo que no es 100% confiable.
Como FVU dice, el número mágico mp3 es 0x49 0x44 0x33
Según http://www.garykessler.net/library/file_sigs.html un archivo mp3 siempre comenzará con ID3 (hex 49 44 33) Sin embargo, la presencia de estos bytes solamente significa que el archivo está etiquetado con ID3 information . Si no se encuentra esta firma, podría ser un archivo mp3 sin etiquetar. Para determinar esto, mira the mp3 file structure y verás que un marco mp3 comienza con la firma ff fb (hex).
Así:
- si archivo comienza hexagonal
49 44 33
o
- si archivo comienza con hexagonal
ff fb
que es seguro asumir que se trata de una MP3.
string[] filePath = Directory.GetFiles(fbdialog.SelectedPath.ToString(),".mp3",
SearchOption.AllDirectories);
foreach (string str in filePath)
{
MessageBox.Show("It's mp3 file");
}
No está mal, pero no es confiable. –
código C#:
bool isMP3(byte[] buf)
{
if (buf[0] == 0xFF && (buf[1] & 0xF6) > 0xF0 && (buf[2] & 0xF0) != 0xF0)
{
return true;
}
return false;
}
- 1. ¿Cómo puedo determinar si un archivo es un archivo PDF?
- 2. ¿Cómo puedo determinar mediante programación si un archivo MP3 es CBR o VBR? (Preferiblemente usando C#)
- 3. ¿Cómo puedo determinar si un archivo es un archivo de imagen en .NET?
- 4. Determinar si un archivo es un duplicado
- 5. Cómo reproducir un archivo MP3 usando NAudio
- 6. longitud de tiempo de un archivo mp3
- 7. PHP ¿cómo puedo verificar si un archivo es mp3 o archivo de imagen?
- 8. ¿Cuál es el algoritmo para convertir un archivo mp3 en un archivo wav?
- 9. C# ¿Cómo puedo probar que un archivo es un jpeg?
- 10. ¿Cómo divido un archivo mp3 en archivos más pequeños?
- 11. Cómo aplicar DRM en un archivo .mp3/.wav
- 12. ¿Puede Python abrir un archivo mp3
- 13. ¿Cómo puedo determinar el grado en que un archivo está fragmentado?
- 14. ¿Cómo puedo determinar si un archivo cargado es un archivo CSV válido, o al menos texto, en ColdFusion 8?
- 15. Cargando un archivo AAC/MP3 "manualmente"
- 16. Encontrar la longitud de un archivo MP3
- 17. ¿Cómo puedo determinar si un archivo está vacío?
- 18. ¿Cómo puedo determinar programáticamente qué aplicación está bloqueando un archivo?
- 19. Detectar si el archivo es MP3
- 20. ¿Cómo puedo convertir un archivo JAR en un archivo EXE?
- 21. ¿Cómo puedo determinar qué tan fuerte sonará un archivo WAV?
- 22. ¿Cómo puedo determinar si un archivo está bloqueado con VBS?
- 23. ¿cómo reproduzco el archivo mp3?
- 24. ¿Cómo puedo averiguar por qué g ++ tarda mucho tiempo en un archivo en particular?
- 25. ¿Cómo puedo determinar quién bloqueó un archivo usando SVN?
- 26. Cómo determinar si una excepción es de un tipo particular
- 27. ¿Cómo puedo determinar cuándo un identificador de ventana es válido?
- 28. ¿Cómo determinar si un descriptor de archivo es buscable?
- 29. ¿Cómo puedo determinar si un manejador de archivo Perl es un manejador de lectura o escritura?
- 30. ¿Verifica una imagen remota en realidad es un archivo de imagen en ruby?
C# y tipo de archivo números mágicos; posiblemente un duplicado de http://stackoverflow.com/questions/1654846/in-c-how-can-i-know-the-file-type-from-a-byte –
Si lo carga correctamente con la solución provista en http://stackoverflow.com/questions/184683/, podría considerarlo como un MP3 válido –