swonson Geschrieben 24. Dezember 2010 Geschrieben 24. Dezember 2010 Gute Abend, ich habe noch ein Problem, welches ich mit google nicht lösen kann.. Wie kann ich mit C# die Eigenschaften einer beliebigen Datei auslesen une bearbeiten ? Ich habe bei google nur leute gefunden die das gleiche suchen wie ich. Ich danke euch im voraus. Mfg Swonson & Frohe Weihnachten Zitieren
lilith2k3 Geschrieben 24. Dezember 2010 Geschrieben 24. Dezember 2010 FileInfo-Klasse (System.IO) Zitieren
swonson Geschrieben 24. Dezember 2010 Autor Geschrieben 24. Dezember 2010 Ich kann damit leider nicht viel anfangen. Kannst du mir ein beispiel nennen, wie ich die Eigenschaften einer MP3-Datei ändern kann? EIn Beispiel für ein Album, Interpret, Genre o.ä. reicht mir brauch nur ein Denkanstoß :S Danke dir... grüße Zitieren
Klotzkopp Geschrieben 24. Dezember 2010 Geschrieben 24. Dezember 2010 Du musst unterscheiden zwischen Dateieigenschaften, die durch Metainformationen im Dateisystem beschrieben werden (das sind die, die du mit FileInfo beeinflussen kannst), und denen, die durch das Dateiformat beschrieben werden und ihre Werte durch den Inhalt der Datei selbst erhalten. Für letztere wirst du keine allgemeingültige Lösung finden, sondern bestenfalls spezifische Funktionen. Schlimmstenfalls musst du das Dateiformat selbst aufdröseln. Falls du also die ID3-Metadaten einer MP3-Datei verändern willst, musst du genau danach suchen. Nicht allgemein nach Dateieigenschaften. Da findet man dann so etwas: C# ID3 Library | Download C# ID3 Library software for free at SourceForge.net Zitieren
swonson Geschrieben 24. Dezember 2010 Autor Geschrieben 24. Dezember 2010 Eigentlich kann man doch die Infos (Alben, Interpret etc..) In der Dateiinfo ändern. Mh das das so schwierig ist hätte ich net gedacht. Ich versuche mal das zu bauen.. danke Zitieren
swonson Geschrieben 26. Dezember 2010 Autor Geschrieben 26. Dezember 2010 So, nach vielen verzweifelten Versuchen bin ich zu der Erkenntnis gekommen, ich raffs nicht. Kennt sich jemand damit aus? Ich verstehe nicht wie ich es verwende... Ich verzweifel.. -.- Zitieren
swonson Geschrieben 26. Dezember 2010 Autor Geschrieben 26. Dezember 2010 Sorry für die Posts hintereinander -.- Ich habe ein Snipped gefunden, welches mir sehr viel weiter hilft, allerdings habe ich ein Porblem. Erstma der Code: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; namespace ConsoleApplication1 { class MusicID3Tag { public byte[] TAGID = new byte[3]; // 3 public byte[] Title = new byte[30]; // 30 public byte[] Artist = new byte[30]; // 30 public byte[] Album = new byte[30]; // 30 public byte[] Year = new byte[4]; // 4 public byte[] Comment = new byte[30]; // 30 public byte[] Genre = new byte[1]; // 1 static void Main(string[] args) { string filePath = @"D:\1eins\Sicherung!\Sicherung!\Musike\Sample Music\Sleep Away.mp3"; using (FileStream fs = File.OpenRead(filePath)) { if (fs.Length >= 128) { MusicID3Tag tag = new MusicID3Tag(); fs.Seek(-128, SeekOrigin.End); fs.Read(tag.TAGID, 0, tag.TAGID.Length); fs.Read(tag.Title, 0, tag.Title.Length); fs.Read(tag.Artist, 0, tag.Artist.Length); fs.Read(tag.Album, 0, tag.Album.Length); fs.Read(tag.Year, 0, tag.Year.Length); fs.Read(tag.Comment, 0, tag.Comment.Length); fs.Read(tag.Genre, 0, tag.Genre.Length); string theTAGID = Encoding.Default.GetString(tag.TAGID); if (theTAGID.Equals("TAG")) { string Title = Encoding.Default.GetString(tag.Title); string Artist = Encoding.Default.GetString(tag.Artist); string Album = Encoding.Default.GetString(tag.Album); string Year = Encoding.Default.GetString(tag.Year); string Comment = Encoding.Default.GetString(tag.Comment); string Genre = Encoding.Default.GetString(tag.Genre); Console.WriteLine("Titel: " + Title); Console.WriteLine("-"); Console.WriteLine("Artist: " + Artist); Console.WriteLine("-"); Console.WriteLine("Album: " + Album); Console.WriteLine("-"); Console.WriteLine("Year: " + Year); Console.WriteLine("-"); Console.WriteLine("Comment: " + Comment); Console.WriteLine("-"); Console.WriteLine("Genre: " + Genre); Console.WriteLine("-"); Console.WriteLine(); } } } Console.ReadKey(); } } } Dieser Code funktioniert einwandfrei und ist wie man sieht sehr leicht. Leider habe ich nur ein Problem und das wäre die Genre... er Zeigt mir nicht die eingespeicherte Genre an sondern irgendwelche Zeichen. Directupload.net - D3qxtqxy3.png Das ist die Ausgabe. Kann mir jemand sagen, woran das liegt? Zitieren
Klotzkopp Geschrieben 26. Dezember 2010 Geschrieben 26. Dezember 2010 er Zeigt mir nicht die eingespeicherte Genre an sondern irgendwelche Zeichen.Doch, das Programm zeigt das Genre an. Dein Programm geht aber offenbar davon aus, dass das Genre als Text gespeichert wird. Das trifft schlicht und einfach nicht zu, was du schon daran hättest erkennen können, dass für das Genre nur ein einziges Byte reserviert ist. Zitieren
swonson Geschrieben 26. Dezember 2010 Autor Geschrieben 26. Dezember 2010 Ja das ist mir aufgefallen und ich wollte es ändern, weil ich dachte das es ein Fehler sei. Leider konnte ich es nicht ändern. Wie kann ich es denn Convertieren bzw auslesen? Zitieren
Klotzkopp Geschrieben 26. Dezember 2010 Geschrieben 26. Dezember 2010 Der Genre-Text ist nicht in der Datei drin. Es gibt entsprechende Listen, in denen du den Wert nachschlagen kannst. Zitieren
swonson Geschrieben 26. Dezember 2010 Autor Geschrieben 26. Dezember 2010 Wie heißen diese Listen? Zitieren
Klotzkopp Geschrieben 26. Dezember 2010 Geschrieben 26. Dezember 2010 Wie heißen diese Listen?Du hast nicht einmal versucht, sie selbst zu finden, oder? Zitieren
swonson Geschrieben 26. Dezember 2010 Autor Geschrieben 26. Dezember 2010 Ja richtig, da ich davon ausging das diese Frage schnell beantwortet wäre. Gut ich werde suchen. Entschuldige, ich nahm an das es einfach schneller geht. Zitieren
swonson Geschrieben 26. Dezember 2010 Autor Geschrieben 26. Dezember 2010 Ich habe zwei detail Tabellen gefunden, allerdings bin ich mir nicht sicher. nr. 1 http://upload.wikimedia.org/wikipedia/commons/0/01/Mp3filestructure.svg Die ist nicht hilfreiche, aber die zweite nr. 2 MP3 Player: Grundlagen allerdings wird dort die Genre auch als 1 Byte beschrieben, was für ein denkfehler mach ich? Das ist ja genau das gleiche wie im Code. Zitieren
Klotzkopp Geschrieben 26. Dezember 2010 Geschrieben 26. Dezember 2010 Liste der ID3v1-Genres ? Wikipedia Zitieren
swonson Geschrieben 26. Dezember 2010 Autor Geschrieben 26. Dezember 2010 Danke, ich hab falsch gegooglt... "byte tabelle mp3 meta" Danke dir. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.