php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger

PHP Einsteiger PHP Problemlösungen für Spracheinsteiger
Archive: 2004, 2004/2, 2005, 2005/2, 2006, 2007, 2008, 2009, 2010,

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 11.01.2012, 19:22  
Neuer Benutzer
 
Registriert seit: 24.03.2009
Beiträge: 27
Ferengi-Master befindet sich auf einem aufstrebenden Ast
Standard Fehler beim Dateiverschieben

Hallo,

mit folgendem Script bekomme ich diesen Fehler:
PHP Warning: rename(E:/Videos TV/Usher_ OMG Tour - 3sat - 2012-01-01.ts,E:/Videos Musik/Usher_ OMG Tour - 3sat - 2012-01-01.ts): Der Prozess kann nicht auf die Datei zugreifen, da sie von einem anderen Prozess verwendet wird. (code: 32) line 266

Zeile 266:
PHP-Code:
rename($a$video_vz_musik.$datensatz_name[$counter].$ext1); 
Per Hand geht es. Scheint irgendein Zugriffsproblem zu sein. Die PHP Anwendung läuft als Systemdienst im Adminkonto.
Ferengi-Master ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 12.01.2012, 12:19  
Benutzer
 
Registriert seit: 06.10.2011
Beiträge: 79
PHP-Kenntnisse:
Anfänger
Moewe ist in Verruf geraten
Standard

Könne ein ähnliches Problem hier vorliegen?

Zitat:
Hinweis:

In Versionen vor PHP 4.3.3 konnte rename() auf *nix-basierten Systemen nicht partitionsübergreifend verschieben.
sprich, könnte es sein das dein verzeichnis zur laufzeit C: oder ähnliches ist?
Moewe ist offline   Mit Zitat antworten
Alt 12.01.2012, 14:28  
Erfahrener Benutzer
 
Benutzerbild von tr0y
 
Registriert seit: 26.07.2010
Beiträge: 4.874
PHP-Kenntnisse:
Fortgeschritten
tr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblick
tr0y eine Nachricht über MSN schicken
Standard

Zitat:
Zitat von Moewe Beitrag anzeigen
Könne ein ähnliches Problem hier vorliegen?



sprich, könnte es sein das dein verzeichnis zur laufzeit C: oder ähnliches ist?
Frag lieber nach der verwendeten PHP Versionen, 4.3.x ist mit verlaub: Asbach-Uralt.
__________________
Lasse mir ohne Anwendung von Gewalt Dinge schenken, Amazon weiß darüber bald mehr.
tr0y ist offline   Mit Zitat antworten
Alt 12.01.2012, 14:57  
Erfahrener Benutzer
 
Benutzerbild von jspit
 
Registriert seit: 19.08.2011
Beiträge: 701
PHP-Kenntnisse:
Anfänger
jspit wird schon bald berühmt werden
Standard

Ein copy testhalber anstelle des rename könnte ev. weitere Hinweise liefern.
jspit ist offline   Mit Zitat antworten
Alt 12.01.2012, 15:50  
meikel
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von Ferengi-Master Beitrag anzeigen
PHP Warning: rename(E:/Videos TV/Usher_ OMG Tour - 3sat - 2012-01-01.ts,E:/Videos Musik/Usher_ OMG Tour - 3sat - 2012-01-01.ts): Der Prozess kann nicht auf die Datei zugreifen, da sie von einem anderen Prozess verwendet wird. (code: 32) line 266

Per Hand geht es. Scheint irgendein Zugriffsproblem zu sein.
Korrekt. Allerdings kriege ich immer leichte Bauchschmerzem , wenn ich in Pfad oder Name Leerzeichen sehe.

Zitat:
Die PHP Anwendung läuft als Systemdienst im Adminkonto.
Da war doch was...<grübel> Frag mal Google nach der Fehlermeldung.
  Mit Zitat antworten
Alt 12.01.2012, 16:16  
Erfahrener Benutzer
 
Benutzerbild von tr0y
 
Registriert seit: 26.07.2010
Beiträge: 4.874
PHP-Kenntnisse:
Fortgeschritten
tr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblick
tr0y eine Nachricht über MSN schicken
Standard

Ich denke Pfad-Relativierung und exclusive Pfad-Validierung hilft hier schonmal ein stück weiter. PHP kann sehrwohl ( mittlerweile 5.3.9 ) interpartionär arbeiten.

PHP-Code:
$sourcefiles = array(); // repräsentiert in dem fall die quellnamen
$targetfiles = array(); // repräsentiert in dem fall die zielnamen

class renameIterator implements Iterator {

   protected
      
$source = array(), $dest = array(), $currentPos 0;

   public function 
__construct( array $source, array $dest ) {
      
$sKeys array_keys($source); sort($sKeys);
      
$dKeys array_keys($dest); sort($dKeys);
      if ( 
$sKeys === $dKeys ) {
         
$this->source $source;
         
$this->dest $dest;
      }
      else throw new 
LogicException('Inbound-Array check for Source and Destination fails due to key-incompability.');
   }

   public function 
next() {
      
$this->currentPos++;
   }

   public function 
rewind() {
      
$this->currentPos 0;
   }

   public function 
key() {
      return 
$this->currentPos;
   }

   public function 
valid() {
      return isset(
$this->source$this->currentPos ], $this->dest$this->currentPos ]);
   }

   public function 
current() {
      
$source $this->source$this->currentPos ];
      
$dest $this->dest$this->currentPos ];
      if ( 
realpath($source) && realpath(pathinfo($destPATHINFO_DIRNAME)) && is_file($source) && is_writeable($dest) ) {
         if ( 
is_file($dest) ) { 
            
unlink($dest);
            
$deletion ', target file has been deleted before.';
         }
         if ( 
rename($source$dest) ) return $source.' renamed to '.$dest.( isset($deletion) ? $deletion '' );
         else return 
$source.' not renamed due to unknown system-based violation.';
      }
      else return 
$source.' not renamed due to access violation';
   }

}

// existierende Ziel-Dateien werden gelöscht !
$jobIterator = new renameIterator$sourcefiles$targetfiles );

foreach ( 
$jobIterator as $stateMessage ) echo $stateMessage."\n"
schaut dann so aus ( SPL-treuer Lösungsweg ).
__________________
Lasse mir ohne Anwendung von Gewalt Dinge schenken, Amazon weiß darüber bald mehr.

Geändert von tr0y (13.01.2012 um 09:16 Uhr).
tr0y ist offline   Mit Zitat antworten
Alt 13.01.2012, 02:56  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Zitat:
Korrekt. Allerdings kriege ich immer leichte Bauchschmerzem , wenn ich in Pfad oder Name Leerzeichen sehe.
Find ich ja ulkig, wenn auf der anderen Seite hier oft die neueste PHP-Version propagiert wird. Zumindest Windows kann seit Jahrzehnten mit Leerzeichen im Pfad umgehen. Nur mal so als Seitenhieb.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 13.01.2012, 10:19  
Erfahrener Benutzer
 
Registriert seit: 01.09.2010
Beiträge: 4.561
PHP-Kenntnisse:
Fortgeschritten
eagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Mensch
Standard

will dann aber den kompletten Pfad nochmal in Double-Quotes verpackt haben
__________________
"Irren ist männlich", sprach der Igel und stieg von der Drahtbürste
eagle275 ist offline   Mit Zitat antworten
Alt 13.01.2012, 14:35  
meikel
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von nikosch Beitrag anzeigen
Nur mal so als Seitenhieb.
Danke für die Disteln, nikosch. Ich bin da altmodisch und verwende nicht nur im Documentroot nur US-ASCII und verzichte auf Leerzeichen. Alte Gewohnheit eines alten Menschens... <ggg>
  Mit Zitat antworten
Alt 14.01.2012, 15:44  
Erfahrener Benutzer
 
Benutzerbild von lstegelitz
 
Registriert seit: 07.09.2009
Beiträge: 4.005
PHP-Kenntnisse:
Fortgeschritten
lstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nett
Standard

Es kommt auf den Kontext an, in dem man solch einen Pfad verwendet. Wenn man einen Pfad mit Leerzeichen als Argument an ein Programm übergibt, trennt der Kommand-Interpreter am Leerzeichen und macht daraus ein weiteres Argument.

prg.exe C:\my folder\my file.txt

arg[1] = C:\my
arg[2] = folder\my
arg[3] = file.txt


prg.exe "C:\my folder\my file.txt"

arg[1] = C:\my folder\my file.txt
__________________
Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.
lstegelitz ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] Zip Archive mit PHP erstellen - Kein Fehler, aber ZIP Archiv ist nicht da robat PHP Tipps 2010 34 09.03.2011 20:17
[Erledigt] session_start - Fehler Schmuse PHP Einsteiger 6 03.03.2011 13:42
Sqlite3 "Update", Fehler bei mehr als 1 "Set" Anweisung skerge12 Datenbanken 4 21.12.2010 09:45
Funktion rename() auf USB-Festplatten bringt Fehler Wing PHP Tipps 2010 13 16.07.2010 23:00
MySQL: Fehler 10046 keine Datenbank ausgewählt aschunk Datenbanken 5 22.04.2010 12:27
[Erledigt] Syntax Error - Wo ist der Fehler? Extremefall PHP Tipps 2009 5 14.12.2009 17:46
[Erledigt] vista, windows update Fehler 80070422 Screeze Off-Topic Diskussionen 3 23.09.2009 18:24
[Erledigt] Fehler bei Array ausgabe newWorldOrder PHP Tipps 2009 2 23.02.2009 17:29
Frage: Suche Fehler in diesem Script... PHP Tipps 2005-2 14 25.10.2005 19:24
[Erledigt] Seite wird nicht angezeigt, untersch. Fehler bei IE/FF/Safar PHP-Fortgeschrittene 19 31.05.2005 14:52
Blöder MySQL Fehler PHP Tipps 2005 3 15.05.2005 03:14
Fehlermeldung - aber kein fehler... Tschuu HTML, Usability und Barrierefreiheit 16 14.03.2005 15:56
Wo liegt der fehler?? PHP-Fortgeschrittene 5 22.12.2004 09:54
array_push nur in begrenzter Anzahl ausführen ? PHP Tipps 2004 2 07.09.2004 09:05

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php rename nach fehler datei weg

Alle Zeitangaben in WEZ +2. Es ist jetzt 18:48 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum