FolderBrowserDialog Problem - Mp3 Dateien bearbeiten und speichern

Diskutiere FolderBrowserDialog Problem - Mp3 Dateien bearbeiten und speichern im .NET Technology Forum; Hallo zusammen, ich habe bereits im Forum Allgemeine Java-Themen einen Thread:...

  1. GUI-Programmer
    GUI-Programmer Neues Mitglied
    Hallo zusammen,

    ich habe bereits im Forum Allgemeine Java-Themen einen Thread: http://www.java-forum.org/allgemeine-java-themen/158475-mp3-dateien-bearbeiten-speichern.html

    Da ich jedoch unbedingt schnell zum Zeil kommen wollte, habe ich mich mal eine andere Sprache (C#) ausprobiert. Das Bearbeiten und Speichern hat geklappt, allerdings hat sich der FolderBrowserDialog nur beim Ausführen in meiner Entwicklungsumgebung (MS Visual Studio Ultimate 2013) geöffnet und nicht beim Doppelklick auf die im Projektordner erstellte .exe Datei.

    Da ich neu bei C# bin denke ich dass es wohl ein Anfängerproblem sein wird und recht schnell gelöst sein wird. Danke im Vorraus!

    Code (Text):

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.IO;
    using System.Windows.Forms;
    using System.Drawing;
    using System.Runtime.InteropServices;


    namespace Mp3_Editor
    {
        class Application
        {
            //[DllImport("kernel32.dll")]
            //static extern IntPtr GetConsoleWindow();

            //[DllImport("user32.dll")]
            //static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);

            //const int SW_HIDE = 0;
            //const int SW_SHOW = 5;


            [STAThread]
            static void Main(string[] args)
            {
                //var handle = GetConsoleWindow();
                //ShowWindow(handle, SW_HIDE);
                new Application();
            }

            public Application()
            {

                try
                {
                    FolderBrowserDialog fbd = new FolderBrowserDialog();

                    fbd.SelectedPath = Environment.GetFolderPath(Environment.SpecialFolder.UserProfile) + "\\Music";
                    DialogResult result = fbd.ShowDialog();

                    DirectoryInfo di = new DirectoryInfo(fbd.SelectedPath);
                    FileInfo[] logFiles = di.GetFiles();

                    DateCompareFileInfo dateCompareFileInfo = new DateCompareFileInfo();

                    Array.Sort(logFiles, dateCompareFileInfo);

                    for (int i = 0; i < logFiles.Length; i++)
                    {
                        TagLib.File fileMp3 = TagLib.File.Create(logFiles[i].FullName);
                        int n = i + 1;
                        fileMp3.Tag.Track = (uint)n;
                        fileMp3.Save();

                        string number;
                        if (n < 10)
                            number = "0" + n;
                        else
                            number = "" + n;
                        File.Move(logFiles[i].FullName, logFiles[i].DirectoryName + "\\" + number + " - " + logFiles[i].Name);

                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                    Console.ReadLine();
                }
               
            }
        }
    }

     
    Code (Text):

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.IO;

    namespace Mp3_Editor
    {
        class DateCompareFileInfo : IComparer<FileInfo>
        {
            /// <summary>
            /// Compare the last dates of the File infos
            /// </summary>
            /// <param name="fi1">First FileInfo to check</param>
            /// <param name="fi2">Second FileInfo to check</param>
            /// <returns></returns>
            public int Compare(FileInfo fi1, FileInfo fi2)
            {
                int result;
                if (fi2.LastWriteTime == fi1.LastWriteTime)
                {
                    result = 0;
                }
                else if (fi2.LastWriteTime < fi1.LastWriteTime)
                {
                    result = 1;
                }
                else
                {
                    result = -1;
                }

                return result;
            }
        }
    }

     
     
  2. Vielleicht hilft dir dieser Kurs hier weiter --> (hier klicken)
  3. GUI-Programmer
    GUI-Programmer Neues Mitglied
    Problem gelöst!
    Das Problem bestand darin dass ich eine Konsole und keine GUI erzeugt habe.

    Hier das funktionierende Programm:
    Code (Text):

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    using System.IO;
    using System.Drawing;
    using System.Runtime.InteropServices;
    using System.Text.RegularExpressions;

    namespace Mp3_Editor
    {
        /// <summary>
        /// Programm zum Nummerieren von Mp3-Dateien in einem Ordner anhand ihres Änderungsdatums.
        /// </summary>
        static class Program
        {
            /// <summary>
            /// Der Haupteinstiegspunkt für die Anwendung.
            /// </summary>
            [STAThread]
            static void Main()
            {
                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);

                // Dialog wird geöffnet um den Ordner auswählen zu können,in welchem sich die bearbeitenden
                // Musikdateien befinden
                FolderBrowserDialog fbd = new FolderBrowserDialog();
                fbd.Description = "Musikverzeichnis auswählen";
                fbd.ShowNewFolderButton = false;
                fbd.SelectedPath = Environment.GetFolderPath(Environment.SpecialFolder.UserProfile) + "\\Music";
                DialogResult result = fbd.ShowDialog();

                try
                {
                    // Eintragen der Mp3-Dateien des Ordners in ein Array
                    DirectoryInfo di = new DirectoryInfo(fbd.SelectedPath);
                    FileInfo[] logFiles = di.GetFiles("*.mp3");

                    // Sortieren der Mp3-Dateien nach deren Änderungsdatum
                    DateCompareFileInfo dateCompareFileInfo = new DateCompareFileInfo();
                    Array.Sort(logFiles, dateCompareFileInfo);

                    // Bearbeiten der jeweiligen Mp3-Datei
                    for (int i = 0; i < logFiles.Length; i++)
                    {
                        // Festlegen der Titelnummer
                        int n = i + 1;
                       
                        // Ermitteln des Interpreten und des Titels
                        Regex regex = new Regex(" - ");
                        string[] substrings = regex.Split(logFiles[i].Name.Replace(".mp3", ""));

                        // Eintragen des Interpreten, Titels und der Titelnummer
                        TagLib.File fileMp3 = TagLib.File.Create(logFiles[i].FullName);
                        if (substrings != null && substrings.Length == 2)
                        {
                            fileMp3.Tag.Performers = new String[] { substrings[0] };
                            fileMp3.Tag.Title = substrings[1];
                        }
                        fileMp3.Tag.Track = (uint) n;
                        fileMp3.Save();

                        // Umbennen der Datei
                        string number;
                        if (n < 10)
                            number = "0" + n;
                        else
                            number = "" + n;
                        File.Move(logFiles[i].FullName, logFiles[i].DirectoryName + "\\" + number + " - " + logFiles[i].Name);

                    }
                }
                catch (Exception ex)
                {
                    // Ausgeben einer Fehlermeldung
                    MessageBox.Show(ex.Message, "Fehler");
                    return;
                }
            }
        }
    }
     
    Code (Text):

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.IO;

    namespace Mp3_Editor
    {
        /// <summary>
        /// Klasse zum vergleichen des Änderungsdatums zweier Dateien.
        /// </summary>
        class DateCompareFileInfo : IComparer<FileInfo>
        {
            /// <summary>
            /// Compare the last dates of the File infos
            /// </summary>
            /// <param name="fi1">First FileInfo to check</param>
            /// <param name="fi2">Second FileInfo to check</param>
            /// <returns></returns>
            public int Compare(FileInfo fi1, FileInfo fi2)
            {
                int result;
                if (fi2.LastWriteTime == fi1.LastWriteTime)
                {
                    result = 0;
                }
                else if (fi2.LastWriteTime < fi1.LastWriteTime)
                {
                    result = 1;
                }
                else
                {
                    result = -1;
                }

                return result;
            }
        }
    }
     
     
    Zuletzt bearbeitet: 22. Feb. 2014
Die Seite wird geladen...

FolderBrowserDialog Problem - Mp3 Dateien bearbeiten und speichern - Ähnliche Themen

War-File Problem mit Eclipse
War-File Problem mit Eclipse im Forum Java Basics - Anfänger-Themen
SharedPreferences Problem
SharedPreferences Problem im Forum Java Basics - Anfänger-Themen
Probleme mit Java Mail
Probleme mit Java Mail im Forum Netzwerkprogrammierung
Problem beim Aufrufen des Spiels von einem Menü
Problem beim Aufrufen des Spiels von einem Menü im Forum Spiele- und Multimedia-Programmierung
Tomcat Eclipse Problem
Tomcat Eclipse Problem im Forum Server einrichten und konfigurieren
Thema: FolderBrowserDialog Problem - Mp3 Dateien bearbeiten und speichern