none
C# For Schleife Datei EXT rausfiltern und kopieren RRS feed

  • Frage

  • Frage !

    Wie kann ich viele dateien nach ihrer Dateiendung z.B .001 .002 .003 usw.  in den entsprechenden Ordner 425 001, 425 002, 425 003 kopieren ? MFG

    Sonntag, 23. Dezember 2018 13:03

Antworten

  • Hallo Markus,

    es wäre hilfreich, wenn Du das mal mit Beispielen konkret darstellen könntest.

    Grundsätzlich würde ich mal das hier vorschlagen:

    String[] files = System.IO.Directory.GetFiles( @"X:\Ordner", "*.001", SearchOption.TopDirectoryOnly );
    String dir;
    
    foreach ( String file in files )
    {
        dir = $@"X:\Ordner\425 {Path.GetExtension( file ).Substring( 1 )}";
        if( !System.IO.Directory.Exists( dir ) ) {
            System.IO.Directory.CreateDirectory( dir );
        }
        File.Copy( file, $@"X:\Ordner\425 {Path.GetExtension( file ).Substring( 1 )}\{Path.GetFileName( file )}" );
    }
    

    Daraus kannst Du eine Methode machen, die die gewünschte Dateiendung annimmt und das Argument dann entsprechend einsetzt.

     


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET (2001-2018)
    https://www.asp-solutions.de/ - IT Beratung, Softwareentwicklung, Remotesupport


    Sonntag, 23. Dezember 2018 13:38
    Moderator

Alle Antworten

  • Hallo Markus,

    es wäre hilfreich, wenn Du das mal mit Beispielen konkret darstellen könntest.

    Grundsätzlich würde ich mal das hier vorschlagen:

    String[] files = System.IO.Directory.GetFiles( @"X:\Ordner", "*.001", SearchOption.TopDirectoryOnly );
    String dir;
    
    foreach ( String file in files )
    {
        dir = $@"X:\Ordner\425 {Path.GetExtension( file ).Substring( 1 )}";
        if( !System.IO.Directory.Exists( dir ) ) {
            System.IO.Directory.CreateDirectory( dir );
        }
        File.Copy( file, $@"X:\Ordner\425 {Path.GetExtension( file ).Substring( 1 )}\{Path.GetFileName( file )}" );
    }
    

    Daraus kannst Du eine Methode machen, die die gewünschte Dateiendung annimmt und das Argument dann entsprechend einsetzt.

     


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET (2001-2018)
    https://www.asp-solutions.de/ - IT Beratung, Softwareentwicklung, Remotesupport


    Sonntag, 23. Dezember 2018 13:38
    Moderator
  • Hallo, danke für die schnelle Antwort.

    ich habe ein Verzeichnis mit vielen Dateien.

     C:\425

    Hier sind folgende Daten die immer variieren.

    C:\425\2330518A.095

               3322453B.116

                123221A.034

    Diese Daten sollen anhand der Dateikennung also.095 / .034 / .116 in die existierenden Ordner 425 095 / 425 116 / 425 034 kopiert werden.

    Die Ordner befinden sich auf einem Netzlaufwerk.

    Lieben Gruß

    Sonntag, 23. Dezember 2018 13:51
  • Hallo Markus,

    dafür kannst Du dann auch mein obiges Beispiel nehmen und minimal anpassen.

    Anstelle von *.001 schreibst Du dann *.*. Den Code zur Prüfung auf die Existenz des Zielordners kannst Du auskommentieren oder rauslöschen. Der Rest geht dann schon so wie von dir gewollt.


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET (2001-2018)
    https://www.asp-solutions.de/ - IT Beratung, Softwareentwicklung, Remotesupport

    Sonntag, 23. Dezember 2018 14:36
    Moderator
  • Super!

    Vielen lieben Dank. Hat funktioniert. *.* war der Schlüssel.

    Wäre ich so nicht drauf gekommen. Bin recht neu im C# programieren.

    Klappt bestens.

    MFG

    Sonntag, 23. Dezember 2018 20:15