Avatar billede martin_shearer Nybegynder
19. februar 2015 - 10:44 Der er 8 kommentarer og
1 løsning

delete folder/sub

Hej

jeg har behov for hjælp til et script. der via et cronjob. kan slette subfolder+filer i den mappe og ned, hvor jeg placere scriptet.

nogen der kan hjælpe. har ikke ku, finde et på nettet jeg har ku få til at virke.
Avatar billede michael_stim Ekspert
19. februar 2015 - 10:57 #1
Hvad kan du ikke få til at virke? Cronjob? Delete funktion? Finde sti til det der skal slettes? osv. Der er et hav af scripts på nettet der virker, at du så ikke kan få det til at virke, er en anden sag.
Avatar billede martin_shearer Nybegynder
19. februar 2015 - 11:23 #2
Selve delete funktionen. når jeg køre cronjobbet eller blot indtaster url til scriptet, sker der intet. filerne ligger stadig på ftp serveren.
Avatar billede martin_shearer Nybegynder
19. februar 2015 - 11:24 #3
har fx. denne, som jeg placere i en mappe. køre url. men den sletter intet.

<?php
/**
* Deletes a directory and all files and folders under it
* @return Null
* @param $dir String Directory Path
*/
function rmdir_files($dir) {
$dh = opendir($dir);
if ($dh) {
  while($file = readdir($dh)) {
  if (!in_array($file, array('.', '..'))) {
    if (is_file($dir.$file)) {
    unlink($dir.$file);
    }
    else if (is_dir($dir.$file)) {
    rmdir_files($dir.$file);
    }
  }
  }
  rmdir($dir);
}
}
?>
Avatar billede michael_stim Ekspert
19. februar 2015 - 11:31 #4
Og hvordan ser dit kald til funktionen ud?
Avatar billede cht22 Professor
19. februar 2015 - 12:19 #5
Denne virker hos mig:

<?php
function delTree($dir) {
  $files = array_diff(scandir($dir), array('.','..'));
    foreach ($files as $file) {
      (is_dir("$dir/$file")) ? delTree("$dir/$file") : unlink("$dir/$file");
    }
    return rmdir($dir);
  }

// Sletter indholdet af mappen og mappen "temp1".

delTree("temp1")
?>
Avatar billede martin_shearer Nybegynder
19. februar 2015 - 12:40 #6
cht22

problemer er at der er mere end end subfolder. så jeg kan ikke skrive navn på hver folder den skal slette. Skal bare ha den til at slette alle undermapper og filer, i den mappe der hedder Cam1
Avatar billede martin_shearer Nybegynder
19. februar 2015 - 12:42 #7
Cht22
tak for hjælpen, smid lige et svar
Avatar billede cht22 Professor
19. februar 2015 - 14:12 #8
Man kan godt lave det lidt om så det kun er indholdet af mappen der bliver slettet, dvs. alle undermapper og filer, men ikke selve mappen:

<?php
function delTree($dir) {
  $files = array_diff(scandir($dir), array('.','..'));
    foreach ($files as $file) {
      (is_dir("$dir/$file")) ? delTree("$dir/$file") : unlink("$dir/$file");
    }

    // Sletter ikke selve mappen "Cam1":

    if ($dir != "Cam1") {
      return rmdir($dir);
    }
  }

delTree("Cam1")
?>
Avatar billede martin_shearer Nybegynder
23. februar 2015 - 09:48 #9
kan man lave sådan at når den har kørt det scripte og slettet alt. retunere den en lille tekst med alt slettet. og evt fejl, hvis der opstår en fejl.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester