Как удалить содержимое каталога с помощью ftw

Мы можем удалить непустую директорию, используя ftw, используя FTW_DEPTH. Но я хочу удалить содержимое каталога, а не сам каталог, что-то похожее на rm -rf dir/*.

Как этого добиться, используя nftp/ftw?

1 ответ

Вы можете попробовать это (ВНИМАНИЕ, подтверждение не требуется):

#include <stdio.h>
#include <ftw.h>
#include <iostream>

using namespace std;
int list(const char *name, const struct stat *status, int type);

int main(int argc, char *argv[])
{
  ftw(argv[1], list, 1);
  return 0;
}

int list(const char *name, const struct stat *status, int type) {
  if(type != FTW_D) {
    cout << "Deleting " << name << endl;
    remove( name );
  }
return 0;
}

И позвоните в ваше приложение:

./main path_to_delete

Другие вопросы по тегам