Witam,
potrzebuje napisac funcje ktora kasuje katalogi wraz z jego calą zawartoscią jednak nie dziala ona poprawnie - wchodzi do katalogu ktory ma skasowac przy unlink pliku pokazuje sie ze jest skasowany(w rzeczywistosci ten plik dalej jest) potem kolejne pliki nie chce kasowac - w rekurencji nigdy nie bylem dobry :)
Oto ta funcja napisana w jezyku c:
rm_dir ( char *dir )
{
struct dirent **katalog;
int ile_kat, dir_error, log;
ile_kat = scandir ( dir , &katalog , 0 , alphasort );
int i;
for( i = 2 ; i < ile_kat ; i++ )
{
printf ( "%s: " , katalog[i]->d_name );
log = rmdir ( katalog[i]->d_name );
dir_error = errno;
if( log )
{
if ( dir_error == ENOTEMPTY ) /jezeli katalog !pusty to wejdz do niego i rob znowu rm
_dir wewnatrz katalogu(rekurencja)/
{
printf ( "katalog nie jest pusty->wejscie do niego\n" );
rm_dir ( katalog[i]->d_name ); /*rekurencja - */
}
else if ( dir_error == ENOTDIR ) /*jezeli to jest plik*/
{
printf ( "kasowanie pliku: " );
log = unlink ( katalog[i]->d_name );
if ( log )
printf ( "blad!\n" );
if ( !log )
printf( "skasowany!\n" );
}
}
else {
printf ( "skasowany katalog\n" );
}
}
}