BlackBoard (http://www.black-board.net/index.php)
- Design, Programmierung & Entwicklung (http://www.black-board.net/board.php?boardid=55)
-- Programmieren (http://www.black-board.net/board.php?boardid=4)
--- dateiupload/löschen (http://www.black-board.net/thread.php?threadid=23444)


Geschrieben von Flux am 23.07.2008 um 16:59:

  dateiupload/löschen

hi,

habe ein kleines datei upload tool geschrieben.
es gibt verschiedene user die bei der erstellung ihren ordner erhalten(mkdir). da lade ich daten rein. wenn nun der user gelöscht wird soll auch sein ordner (und somit die darin befindlichen dateien) gelöscht werden.

ich lösche den ordner also mit rmdir(). leider kann der ordner nur gelöscht werden, wenn er leer ist. kann das irgendwie umgangen werden?

Edit: da ich nun die dateien in dem ordner bei delete nicht lösche sondern in ein papierkorb verzeichnis schiebe möchte ich das auch mit dem ordner machen.

leider hab ich keine ahnung wie ich ordner verschiebe :/

ich könnte einfach alle gelöschten ordner z.B. in deleted_$ordnername umschreiben, die andere variante wäre mir aber lieber smile


mfg



Geschrieben von phlox81 am 23.07.2008 um 17:46:

 

Wie wärs mit move? Also den Ordner in ein anderes Verzeichnis verschieben, so das z.b. die Webapplikation keinen Zugriff mehr drauf hat.

Ansonsten könntest du den Ordner kopieren, und dann löschen.



Geschrieben von phoenix am 23.07.2008 um 19:12:

 

Probier mal "rmdir /s". Dies sollte den kompletten Verzeichnisbaum löschen. Ein ergänzendes "/q" sollte dann auch noch die 'Wollen sie wirklich löschen?' Nachfragen abschalten.



Geschrieben von LX am 24.07.2008 um 00:46:

 

rmdir() entfernt nur leere Verzeichnisse. Falls sich aber noch Dateien darin befinden (du die aber net mehr brauchst), dann leere das Verzeichnis vorher doch einfach.

code:
1:
2:
@unlink ( $dirname . '/*' );
rmdir ( $dirname );



Geschrieben von Flux am 24.07.2008 um 10:15:

 

ah danke, wusste nicht, dass man da mit * arbeiten kann smile

um den ordner inkl. unerordner/dateien ins "bin" verzeichnis zu schieben hab ich nun rename() benutzt:

php:
1:
rename("dateien/testordner""dateien/bin/testordner");


funktioniert auch, wenn sich im ordner dateien befinden.

grundsätzlich mach ich damit ja nichts anderes als mit copy & unlink.

ich könnte also eigentlich auch die dateien mit rename() anstatt mit copy + unlink verschieben:


php:
1:
rename("dateien/datei.pdf""dateien/bin/datei.pdf");


welche variante findet ihr besser/sicherer/schöner?



Geschrieben von phoenix am 24.07.2008 um 15:01:

 

Zitat:
Original von LX
rmdir() entfernt nur leere Verzeichnisse. Falls sich aber noch Dateien darin befinden (du die aber net mehr brauchst), dann leere das Verzeichnis vorher doch einfach.


achso, es geht um php, sagt das dochmal einer... Augenzwinkern ich dachte das wäre irgendeine cmd batch geschichte. da gibts auch rmdir und dort lassen sich auch keine verzeichnisse mit inhalt löschen großes Grinsen


Forensoftware: Burning Board 2.3.6, entwickelt von WoltLab GmbH