Ankündigung

Einklappen
Keine Ankündigung bisher.

Funktion rename() auf USB-Festplatten bringt Fehler

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Funktion rename() auf USB-Festplatten bringt Fehler

    Hallo,


    ich habe ein Skript, welches per Knopfdruck ein Verzeichnis durchsucht und die Dateinamen anhand bestimmter Regeln automatisch umbenennt.

    Dieses Skript habe ich bereits seit mehreren Jahren und es funktionierte bisher immer einwandfrei. Nun bekomme ich aber einen sehr komischen Fehler.

    Wenn ich ein Verzeichnis auf meinem Computer (lokaler Server, lokale Platte) durchsuche, dann funktioniert nach wie vor alles einwandfrei. Nehme ich aber meine Festplatte, die per USB angeschlossen ist als Ziellaufwerk, so kommt ein Fehler, dass das Umbenennen nicht geklappt hat.

    Nicht falsch verstehen. Den Fehler bekomme ich schon seit dem ersten Mal, seit ich versuche auf einem Ordner auf der USB-Platte Dateinamen zu ändern.

    Ich denke ein Codebeispiel brauch ich nicht einzustellen. Es handelt sich lediglich um die Funktion rename().

    Im Internet konnte ich auch nichts über das Thema "Schreibrechte" o.Ä. auf USB-Platten finden... bin bei der Suche allerdings auf das Folgende gestoßen:

    PHP :: Bug #48771 :: rename() between drives error: No error

    Der Bug hat mit meinem Problem allerdings überhaupt nichts zu tun. Lediglich die Fehlermeldung ist bei mir gleich. Es kommt bei mir auch der "no error" Fehler und dann werden die Pfade/Dateinamen angezeigt.

    Hoffe jemand von euch kennt sich mit der Thematik aus.

    Lg
    Wing



    Edit: Der Fehler tritt in den XAMPP Versionen 1.7.3, 1.6.3a, sowie 1.5.0 auf... weitere Versionen wurden nicht getestet.. also ist der Fehler in der gesamten Version 5 von php enthalten.

    Getestet wurde nur auf Windows 7 Professional x86.


  • #2
    Zuallererst: Ich kenne mich nicht aus.

    a) Apache hat nicht die Rechte, auf das LW zuzugreifen
    b) Das Laufwerk hat einen dynamischen Buchstaben und Apache kann diese nicht auflösen (unwahrscheinlich, denn mit subst kommt Apache zumindest unter XP auch super klar, allerdings handlet WIndows 7 so einiges anders mit Hardlinks/Junctions als zuvor)
    c) PHP kann generell nicht Verzeichnisübergreifend kopieren - auch unwahrscheinlich

    Vorschlag: exec und Systembefehl benutzen.
    --

    „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
    Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


    --

    Kommentar


    • #3
      Hallo,

      erstmal zu a)

      Seitens Windows wurde kein "schreibgeschützt" oder ähnliches draufgesetzt. Es handelt sich um ganz normale Ordner/Dateien, ohne dass etwas speziell an ihnen verändert wurde. Wenn es einen Schreibschutz gibt, dann ist er nur vorhanden weil es sich um eine USB-Festplatte handelt. Ob es sowas überhaupt gibt weiß ich ja eben nicht.

      b) Was heißt denn genau dynamische Laufwerksbuchstaben? Generell hat ja ein externes Device immer dynamische Laufwerksbuchstaben. Allerdings solange sie gemounted sind, kann man sie doch ganz normal ansprechen, oder?

      Ich mein das Verzeichnis auslesen funktioniert ja einwandfrei, nur eben der rename()-Befehl bricht ab. Ich kann auch eine temporäre Datei auf dem Laufwerk erstellen und verändern bzw. auch löschen.

      c) Das verzeichnisübergreifende Kopieren wird in meinem Fall gar nicht ausgeführt. Rename() verändert nur den Dateinamen, nicht aber den Pfad. Auch wenn ich XAMPP von der USB-Platte aus starte und sozusagen partitionsintern zugreife, kommt der selbe Fehler.

      Gruß
      Wing

      Kommentar


      • #4
        Dann machst DU vermutlich einfach irgendwo einen Fehler mit dem Pfad.
        --

        „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
        Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


        --

        Kommentar


        • #5
          Geht es denn bei dir?

          Kommentar


          • #6
            Ich hab nun ein paar Tests durchgeführt.

            Habe meinen USB-Stick eingesteckt und versucht die Dateien auf der USB-Festplatte und dem Stick zu ändern. Habe dafür die Daten von der Platte auf den Stick geschoben.

            Ergebnis: Auf dem Stick konnten alle Dateien ohne Probleme umbenannt werden.


            Nach ein paar Tests ist mir dann aufgefallen, was der Grund sein könnte (und es auch sehr wahrscheinlich ist).

            Wie auf dem Bild zu sehen, braucht man Administator-Rechte um die Dateien umzubenennen. Kopiere ich die Dateien auf den Stick, ist dieses Symbol nicht vorhanden. Erstellt man eine .txt Datei mit php und benennt diese anschließend um, so klappt das auf beiden Datenträgern. Eben da eine selbst erstellte Datei kein UAC-Zeichen hat.


            Kann mir nun einer helfen, dieses Symbol zu entfernen? Gibt es da eine Möglichkeit in Windows 7?


            PS: und nein es war kein Fehler in dem Pfad :P
            Angehängte Dateien

            Kommentar


            • #7
              Unter welchem Nutzer laufen PHP/Webserver?

              Kommentar


              • #8
                Falls du den Benutzer im Task-Manager meinst, dann läuft er ganz normal über meinen Logon-Namen. Dieser ist laut den Benutzerkonten ein Administrator - wobei ich eigentlich dachte, dass es seit WinVista keine Standard-Admins mehr gibt ?!

                Kommentar


                • #9
                  PS: und nein es war kein Fehler in dem Pfad :P
                  a) Apache hat nicht die Rechte, auf das LW zuzugreifen
                  Es handelt sich um ganz normale Ordner/Dateien, ohne dass etwas speziell an ihnen verändert wurde.
                  --

                  „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                  Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


                  --

                  Kommentar


                  • #10
                    Zitat von Wing Beitrag anzeigen
                    Falls du den Benutzer im Task-Manager meinst, dann läuft er ganz normal über meinen Logon-Namen. Dieser ist laut den Benutzerkonten ein Administrator - wobei ich eigentlich dachte, dass es seit WinVista keine Standard-Admins mehr gibt ?!
                    Beende mal Apache und starte ihn mit der Option "als Administrator ausführen".

                    Man kann es so ausdrücken das dein Konto zwar Adminrechte hat aber die Anwendungen nur wenn du ihnen diese gibst.

                    Alternative wäre die UAC zu deaktivieren. (siehe ggf. Google)

                    Oder du lässt Apache als Systemdienst starten.
                    "Alles im Universum funktioniert, wenn du nur weißt wie du es anwenden musst".

                    Kommentar


                    • #11
                      @nikosch: Also ich bin ja ein Mensch, der andere respektiert und auch versucht wenigstens mit ihnen auszukommen. Weiterhin ist es mir sehr wichtig, dass ich die Leute höflich anspreche, von denen ich Hilfe erwarte. Aber genauso erwarte ich auch ein wenig Respekt von der anderen Seite.

                      Das regt mich an diesem Forum so dermaßen auf, dass jedes Mal wenn man hier etwas fragt, welche kommen, die sowas von arrogant sind und meinen unbedingt auftrumpfen zu müssen.

                      Abgesehen davon, sagen deine Zitate überhaupt nichts aus. Denn die Daten auf der externen Festplatte sind copy&pasted. Die waren vorher allesamt auf meiner internen Platte. Und wie schon gesagt hab ich mit Rechtsklick->Eigenschaften nichts an den Daten verändert. Wie gesagt copy&pasted - ohne selbst die Attribute zu verändern. Genau das war Kern der Aussage. Dass Windows was mit den Daten gemacht hat schließe ich ja nie aus. Deswegen dachte ich ja man hat bei USB-Laufwerken andere Rechte wie bei internen IDE/SATA.


                      @Dark Guardian: Vielen Dank für deine Hilfe. Leute wie du braucht das Forum, die einen nicht sofort als unfähig deklarieren.

                      "Der Dateiname von 23 Dateien wurde geändert! Falls sonst keine Fehler angezeigt werden, sollte alles regelmäßig geklappt haben!"

                      "Als Administrator ausführen" funktioniert einwandfrei.

                      Gruß
                      Wing

                      Kommentar


                      • #12
                        Häh? Was wikllst Du denn? Du hast
                        PS: und nein es war kein Fehler in dem Pfad :P
                        gesagt und ich habe gesagt, dass es also doch a) war (bezgl. „Wie auf dem Bild zu sehen, braucht man Administator-Rechte um die Dateien umzubenennen.“). Also wo ist Dein Problem? Ich habe oben geschrieben „Zuallererst: Ich kenne mich nicht aus.“, was hat das bitte mit Arroganz zu tun? Oder was ist an einem Icon arroganter als an :P Komm mal wieder auf den Teppich! SO einen Müll kann ich echt nicht haben!
                        --

                        „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                        Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


                        --

                        Kommentar


                        • #13
                          Es tut mir leid, wenn ich dich evtl. falsch verstanden habe. Du hast ja nur 3 Zitate gebracht, ohne ein Wort dazu zu sagen - also kann man das ja wohl mal falsch interpretieren.

                          Ich weiß noch von meinen letzten Besuchen hier, dass gerne im Anfängerforum nicht gerade nett geredet wird und diese Aussage

                          Dann machst DU vermutlich einfach irgendwo einen Fehler mit dem Pfad.
                          lässt einen sofort wieder daran denken. Wenn du mich nicht kennst und nicht weißt was ich kann und was nicht, dann sollest DU auch nicht so direkt mit dem Finger auf mich zeigen. Denn bei sowas bildet man sich leicht eine negative Meinung über dich.

                          Gruß
                          Wing

                          Kommentar


                          • #14
                            Dann machst DU vermutlich einfach irgendwo einen Fehler mit dem Pfad.
                            war für mich die logische Folgeerung daraus, dass Du alles andere ausgeschlossen hast. Mittlerweile stellte sich heraus, dass a) doch nicht ausgeschlossen wurde.
                            --

                            „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                            Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


                            --

                            Kommentar

                            Lädt...
                            X