Dateien nach Schema umbenennen

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Dateien nach Schema umbenennen

    Abend!

    Ich wollte mir gerade ein Script schreiben mit dem ich nach einem vorgegebenen Schema Dateien aus einem Ordner umbenennen kann.
    Steh aber gerade auf dem Schlach und hoffe einer von euch kann mir helfen:

    Ich möchte alle Dateien aus einem Ordner so bearbeiten:
    1. Endung "abschneiden"
    2. 3 Zeichen vor dem Ende des Dateinamens einen Punkt setzen und so quasi die letzten 3 Zeichen zur Dateiendung machen.

    Warten schon Ungeduldig auf eure Vorschläge

  • #2
    hmm, denke dass da was mit substr() laufen könnte. Die Endung könntest du mit explode entfernen.

    Comment


    • #3
      JA gut. Schonmal Thx.
      Aber wie lese ich erstma jede Datei einzeln aus dem Verzeichnis ein?

      Comment


      • #4
        Aber Opa!!! Gerade dir würde ich nicht unterstellen, dass du die Suche nicht nutzt. Hast du da nicht gefunden?

        Comment


        • #5
          sry, hab wohl etwas vorzeitig gepostet
          Hab einiges gefunden aus dem ich mir jetzt was basteln werde.
          Bei Probs komm ich wieder auf dich zurück

          Thx für die schnelle Hilfe

          Comment


          • #6
            Kein Problem. Die Hilfe beruht ja auf Gegenseitigkeit!

            Comment


            • #7
              Bin eigentlich fast durch. LEider wird mir immernoch das Bein gestellt:

              Warning: rename() failed (No such file or directory) in C:\home\rename.php on line 12

              So sieht mein Script aus:
              PHP Code:
              $verzeichnis dir("c:/tmp/zib");
              while(
              $oldfile $verzeichnis->read()){
                if(
              $datei != "." && $datei != ".."){
                  
              $olddatei explode("."$oldfile);
                  
              $length strlen($olddatei[0]);
                  
              $filename substr($olddatei[0],0,($length-3));
                  
              $ending substr($olddatei[0],-3,3);
                  
              $newname $filename.".".$ending;
                  echo 
              "\n$olddatei[0] $length $filename $ending $newname<br>";
                  
              rename('$oldfile''$newname');
                }
              // while
              $verzeichnis->close(); 
              Wäre über weitere Hilfe sehr dankbar

              Comment


              • #8
                Versuchs mal mit

                PHP Code:
                <?php
                $verzeichnis 
                dir("zib");
                chdir('c:\home\zib');
                //echo dirname('c:\home\zib\ ')."<br>"; 
                while($oldfile $verzeichnis->read()){
                  if(
                $oldfile != "." && $oldfile != ".."){
                    
                $olddatei explode("."$oldfile);
                    
                $length strlen($olddatei[0]);
                    
                $filename substr($olddatei[0],0,($length-3));
                    
                $ending substr($olddatei[0],-3,3);
                    
                $newname $filename.".".$ending;
                    echo 
                "\n$olddatei[0] $length $filename $ending $newname<br>";
                    
                rename($oldfile$newname);
                  }
                // while
                $verzeichnis->close();
                ?>

                Comment


                • #9
                  ich vermute, dass die klasse irgend ein verzeichnis nimmt. egal, wo es liegt. dadurch weiß das rename() nachher nicht, wo er was umbenennen soll, weil im Verzeichnis, in dem Du dich befindest keine Datei mit dem entsprechenden Namen vorhanden ist.

                  Comment


                  • #10
                    Erstma vielen Dank an Tobi der mir gleich geholfen hat.
                    Nach einiger überlegung haben wir folgendes funzendes Script "entwickelt":
                    PHP Code:
                    $verzeichnis dir("zib");
                    chdir('c:\home\zib');
                    while(
                    $oldfile $verzeichnis->read()){
                      if(
                    $oldfile != "." && $oldfile != ".."){
                        
                    $olddatei explode("."$oldfile);
                        
                    $length strlen($olddatei[0]);
                        
                    $filename substr($olddatei[0],0,($length-3));
                        
                    $ending substr($olddatei[0],-3,3);
                        
                    $newname $filename.".".$ending;
                        echo 
                    "\n$olddatei[0] $length $filename $ending $newname<br>";
                        
                    rename($oldfile$newname);
                      }
                    // while
                    $verzeichnis->close(); 

                    Comment


                    • #11
                      Und es funktioniert wunderbar!!!

                      Comment

                      Working...
                      X