login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Map met bestanden verwijderen (Opgelost)

Offline sicco - 13/05/2007 12:21
Avatar van siccoLid Ik gebruik het volgende script om een map met bestanden daarin te verwijderen:
  1. $dir = 'projecten/'.$_GET['project'];
  2. if ($handle = opendir($dir)) {
  3. while (false !== ($file = readdir($handle))) {
  4. unlink($dir."/".$file);
  5. }
  6. }
  7. closedir($handle);
  8.  
  9. rmdir($dir);

Het werkt wel, maar ik krijg toch een foutmelding namelijk:
  1. Warning: unlink(projecten/Oostzeestraat 216/..) [function.unlink]: Is a directory in


Op regel 33 geeft hij het aan, en dat is:
  1. unlink($dir."/".$file);

Weet iemand hoe dit komt?
Alvast bedankt 

9 antwoorden

Gesponsorde links
Offline marten - 13/05/2007 14:26
Avatar van marten Beheerder Als je op www.php.net/unlink had gekeken had je waarschijnlijk de volgende regel ook gelezen:

Citaat:
Zie ook rmdir() om folders te verwijderen.


Je moet dus eerst gaan checken of het een directory is dan gebruik je rmdir en anders is het een file en gebruik je unlink.

Info:
http://www.php.net/rmdir
http://www.php.net/unlink
Offline Grayen - 13/05/2007 21:25
Avatar van Grayen PHP ver gevorderde
  1. <?php
  2. function removeDir($sDir)
  3. {
  4. if(($pDir = opendir($sDir)) !== false)
  5. {
  6. while(($sItem = readdir($pDir)) !== false)
  7. {
  8. if($sItem != '.' && $sItem != '..')
  9. {
  10. $sItem = $sDir.'/'.$sItem;
  11. if(is_dir($sItem) === true)
  12. {
  13. rmdir($sItem);
  14. }
  15. else
  16. {
  17. unlink($sItem);
  18. }
  19. }
  20. }
  21. closedir($pDir);
  22. rmdir($sItem);
  23. }
  24. }
  25. ?>
Offline Ultimatum - 13/05/2007 21:36
Avatar van Ultimatum PHP expert Als je had gezocht had je een topic van mij gevonden waarin ik een antwoord op mijn eigen vraag geef:

http://www.site...erwijderen
Offline sicco - 15/05/2007 15:48
Avatar van sicco Lid Die werkt helemaal niet bij mij maar het is dus zo dat de script die ik hier boven poste werkt, maar dat ik alsnog een foutmelding krijg. Dus de map met bestanden erin wordt verwijderd maar die foutmelding verschijnt alsnog, alsmede de melding "de map is verwijderd." Nu is het natuurlijk wel zo netjes dat die melding weg gaat, dus weet iemand hoe?;-)
Offline Thomas - 15/05/2007 15:51
Avatar van Thomas Moderator Hij ziet de koppelingen "." en ".." ook als bestanden, en die kun je niet verwijderen - z. Grayen's script hierboven.
Offline sicco - 15/05/2007 16:00
Avatar van sicco Lid Die van Grayen heb ik geprobeerd maar ook daar blijft de map met de bestanden erin gewoon staan 
Offline Stijn - 15/05/2007 16:24
Avatar van Stijn PHP expert http://www.pastebin.be/1737 - dit script werkt.
Offline Thomas - 15/05/2007 16:44 (laatste wijziging 15/05/2007 16:46)
Avatar van Thomas Moderator @script van Grayen
Regel 13 zou ik removeDir($sItem) van maken, dan heb je meteen een recursieve functie.
Regel 22 zou de dir moeten weggooien - rmdir($sDir) in plaats van rmdir($sItem) dus... Debug eerst iets voordat je het als een "werkend" script post ajb...

Dit zijn de wijzigingen die stijn1989 in zijn variant heeft zitten .
Offline sicco - 15/05/2007 16:56
Avatar van sicco Lid Thnx Grayen, FangorN en uiteindelijk Stijn1989 voor de hulp, nu werkt hij helemaal zonder foutmelding 
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.24s