Как я могу удалить каталог и все файлы в нем с C ++? - PullRequest
0 голосов
/ 17 сентября 2011

Как я могу удалить все файлы в каталоге? Я использовал rmdir и другие методы, предложенные в интернете, но никто не помог мне: это один из них: (Я хочу удалить каталог tmp в текущем рабочем каталоге)

removeDir()
{
         char currentPath[_MAX_PATH];
    GetCurrentPath(currentPath);
    std::string tmp(currentPath);

    string path = tmp + "\\temp";


    std::string command = "del  ";
    std::string Path = path + "1.txt"; 
    cout << Path << endl;
    system(command.append(Path).c_str());   
}

GetCurrentPath(char* buffer)
{
    getcwd(buffer, _MAX_PATH);
}   

Ответы [ 4 ]

2 голосов
/ 17 сентября 2011
2 голосов
/ 17 сентября 2011

Вы должны заглянуть в библиотеку Boost Filesystem , которая предоставляет ряд функций, которые значительно упрощают подобные вещи. Пример кода на связанной странице делает нечто очень похожее на то, что вы хотите выполнить (он рекурсивно ищет каталог, а не рекурсивно удаляет содержимое).

0 голосов
/ 17 сентября 2011

Если вы не хотите использовать Boost, вы можете сделать это

rm -r "folder name"
0 голосов
/ 17 сентября 2011

http://www.cplusplus.com/reference/clibrary/cstdio/remove/

 int remove ( const char * filename );
#include <stdio.h>

int main ()
{
  if( remove( "myfile.txt" ) != 0 )
    perror( "Error deleting file" );
  else
    puts( "File successfully deleted" );
  return 0;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...