Linux C++ 遞迴刪除資料夾下所以內容
阿新 • • 發佈:2019-01-06
#include <dirent.h> void delete_path(const char* path){ __android_log_print(ANDROID_LOG_INFO, COM_HSDI_LOG_TITLE, "delete_path %s", path); DIR *pDir = NULL; struct dirent *dmsg; char szFileName[128]; char szFolderName[128]; strcpy(szFolderName, path); strcat(szFolderName, "/%s"); if ((pDir = opendir(path)) != NULL) { __android_log_print(ANDROID_LOG_INFO, COM_HSDI_LOG_TITLE, "open dir success"); // 遍歷目錄並刪除檔案 while ((dmsg = readdir(pDir)) != NULL) { __android_log_print(ANDROID_LOG_INFO, COM_HSDI_LOG_TITLE, "do while %s-->%s", szFileName); if (strcmp(dmsg->d_name, ".") != 0 && strcmp(dmsg->d_name, "..") != 0) { sprintf(szFileName, szFolderName, dmsg->d_name); __android_log_print(ANDROID_LOG_INFO, COM_HSDI_LOG_TITLE, "do remove %s", szFileName); string tmp = szFileName; //如果是資料夾,名稱中不包含"." if (tmp.find(".") == -1){ delete_path(szFileName); } remove(szFileName); } } } __android_log_print(ANDROID_LOG_INFO, COM_HSDI_LOG_TITLE, "open dir over"); if (pDir != NULL) { closedir(pDir); } }