JPEG-Dateien auflisten



  • Moin,
    ein Freund von mir hat folgendes Problem: Er soll in C# ein Programm schreiben, welches alle JPEG-Dateien in einem beliebigen Ordner auflistet. Es soll eine Consolenanwendung sein. Allerdings hat er "kaum Ahnung" von C#. Wenn einer eine Hilfestellung geben kann, oder noch besser ein Sample hat, kann er diese dann bitte posten. Ich kann ihm nicht wirklich helfen, weil ich mit C++ programmiere und noch nicht viel mit C# zu tun hatte. Wem die Beschreibung zu ungenau ist, oder sie nicht versteht, dem kann ich auch die Aufgabe schicken.
    Es ist eilig!!!



  • Hi,

    dann empfehle ich dir entweder das Ganze im Projekte Forum mit Preis zu posten oder da es so simpel ist das Ganze einfach bei Google einzugeben, das sollte ein komplettes Sample ergeben.

    mfG
    KaPtainCugel



  • Nur mal so, es gibt bei Google nichts der artiges.



  • Hint:

    Directory.GetFiles(path, "*.jpg");
    

    Weiteres steht in der MSDN: Directory.GetFiles (s. Beispiel dort -> Aufgabe gelöst 😉

    P.S. Was meinst du denn mit "Recompress"? Sollen auch noch die Dateien gelesen und neu abgespeichert werden (mit anderem Kompressionsfaktor)? Dann hilft dazu Gewusst wie: Festlegen der JPEG-Komprimierungsebene



  • Das mit dem Recompress war ein bisschen blöd ausgedrückt, um ganz genau zu sein soll das Programm in einem bestimmten DateiPfad Dateien mi der Endung *.jpg finden, sonst nichts. Aber Danke für den Link in der MSDN, nur hat er mir grade bei Skype geschrieben, das er es nicht versteht. Wie gesagt er ist noch Anfänger.



  • Sharow schrieb:

    Er soll in C# ein Programm schreiben [...] Allerdings hat er "kaum Ahnung" von C#.

    Wie wäre es mal damit: C# lernen



  • z.B. mit einem der beiden OpenBooks Visual C# 2008 oder Visual C# 2010.



  • Th69 schrieb:

    z.B. mit einem der beiden OpenBooks Visual C# 2008 oder Visual C# 2010.

    Danke für die Links. 🙂



  • Nach ein paar Experimenten hat er folgenden Code geschrieben:

    using System;
    using System.IO;
    
    class Program
    {
        static void Main()
        {
            Console.WriteLine("Bitte gültigen Pfad angeben :");
            string path = Console.ReadLine();
    
            // Zeigt alle *.jpg Dateien im angegebenen Verzeichnis.
            string[] array1 =  
            Directory.GetFiles(path, "*.jpg");
            // Zeigt alle JPG Dateien.
            Console.WriteLine("--- JPG Dateien: ---");
            foreach (string name in array1)
            {
                Console.WriteLine(name);
            }
    
            Console.ReadKey();
    
        }
    }
    

    Allerdings soll das Programm auch die Unterordner durchsuchen. Nur wie? Könnte also jemand das Programm ergänzen?


  • Administrator

    Sharow schrieb:

    Nur mal so, es gibt bei Google nichts der artiges.

    Nein, überhaupt nicht. Einfach nur der erste Treffer... (und noch viele mehr)
    Google: C# search files subfolder

    Und wieso kann dein Freund hier nicht selber posten? Gibt schliesslich keinen Registrierungszwang hier. Oder existiert dieser Freund nicht? 😉

    Grüssli



  • Hallo Leute ich bin der besagte Freund .

    Es tut mir leid das mein Kumpel die ganze Zeit schreiben musste. (wusste nicht das hier keine Anmeldepflicht besteht. 🙂 )

    wäre froh wenn ihr mir helfen könntet 🙂

    Danke im Vorraus



  • Hier die Lösung für das Programm:

    using System;
    using System.IO;
    
    class Program
    {
        static void Main()
        {
            Console.WriteLine("Bitte gültigen Pfad angeben :");
            string path = Console.ReadLine();
    
            // Zeigt alle *.jpg Dateien im angegebenen Verzeichnis.
            string[] array1 =  
            Directory.GetFiles(path, "*.jpg", SearchOption.AllDirectories);
            // Zeigt alle JPG Dateien.
            Console.WriteLine("--- JPG Dateien: ---");
            foreach (string name in array1)
            {
                Console.WriteLine(name);
            }
    
            Console.ReadKey();
    
        }
    }
    

    Das einzige was dem Programm gefehlt hat war die SearchOption, welche es eben unter anderem auch möglich macht Unterordner miteinzubeziehen. Gut das sich C++.net und C# so ähnlich sind, weil ich das Programm in C++.net nachgeschrieben hab, um auf die Lösung zu kommen. 🙂



  • class Program
    {
        static void Main()
        {
    
            Console.WriteLine("Bitte gültigen Pfad angeben :");
            string path = Console.ReadLine();
            try
            {
                // Zeigt alle *.jpg Dateien im angegebenen Verzeichnis. 
                string[] array1 =
                    Directory.GetFiles(path, "*.jpg", SearchOption.AllDirectories);
                // Zeigt alle JPG Dateien. 
                Console.WriteLine("--- JPG Dateien: ---");
                foreach (string name in array1)
                {
                    Console.WriteLine(name);
                }
    
            }
    
           catch (Exception)
           {
               Console.WriteLine("Es ist ein Fehler aufgetreten.\n\nBitte beliebige Taste zum beenden des Programms drücken.");
           }
    
            Console.ReadKey();
    
        }
    }
    

    Jetzt habe ich folgendes Problem ich habe eine .config Datei und will z.B. Bildgröße daraus verwenden.

    Wie soll ich das im Source angeben?

    hier die .config

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
        <configSections>
            <sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
                <section name="ReCompress.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
            </sectionGroup>
        </configSections>
      <property name="ImagesFilters">
        <item>*.jpg</item>
        <item>width = 1024</item>
        <item>hight = 800</item>
      </property>
      <property name="MaxImageSize">4096000</property>
        <applicationSettings>
            <ReCompress.Properties.Settings>
                <setting name="Setting" serializeAs="String">
                    <value />
                </setting>
            </ReCompress.Properties.Settings>
        </applicationSettings>
    </configuration>
    

    Bitte um Hilfe

    MfG Arsenius



  • Bitte um Hilfe da so lange keine Antwort kam dachte ich mir das ich vielleicht noch einen Hileruf mache.

    MfG Arsenius



  • Hat sich erledigt, Programm ist fertig. 🙂


Anmelden zum Antworten