C++ 遍歷目錄刪除文件,空文件夾下 `readdir` 返回 `.`,誤以為有內容無法刪除。
Linux 目錄默認包含兩個特殊條目:
. 指向當前目錄.. 指向父目錄它們**不是普通文件**,不可刪除,遍歷時必須過濾。
DIR *dir = opendir(path);
struct dirent *entry;
while ((entry = readdir(dir)) != nullptr) {
if (strcmp(entry->d_name, ".") == 0 || strcmp(entry->d_name, "..") == 0)
continue; // 跳過特殊項
// 處理正常文件/子目錄
}
closedir(dir);
lsof 排查)。fsck 修復)。