Zum Inhalt springen

C# Dateieigenschaften auslesen


Empfohlene Beiträge

Geschrieben

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

Geschrieben

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

Geschrieben

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

Geschrieben

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

Geschrieben

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.. -.-

Geschrieben

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?

Geschrieben
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.
Geschrieben

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?

Geschrieben

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.

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...