在C語言中,要遍歷文件夾可以使用系統提供的目錄操作函數。以下是一種常見的方法:
1. 使用`opendir()`函數打開要遍歷的目錄,該函數返回一個指向目錄的指針。
2. 使用`readdir()`函數讀取目錄中的每個條目,該函數返回一個指向`dirent`結構體的指針。
3. 檢查讀取的每個條目,如果是文件夾,則遞歸調用自身來處理文件夾中的內容。
4. 如果是文件,則進行所需的操作,例如打印文件名、復制文件等。
5. 使用`closedir()`函數關閉目錄。
下面是一個簡單的示例代碼,演示了如何遍歷文件夾并打印其中所有文件和子文件夾的名稱:
#include#include void traverseDirectory(char* path) { DIR* dir; struct dirent* entry; // 打開目錄 dir = opendir(path); if (dir == NULL) { perror("無法打開目錄"); return; } // 讀取目錄中的每個條目 while ((entry = readdir(dir)) != NULL) { // 跳過當前目錄(.)和上級目錄(..) if (strcmp(entry->d_name, ".") == 0 || strcmp(entry->d_name, "..") == 0) { continue; } // 構建完整路徑 char filePath[256]; snprintf(filePath, sizeof(filePath), "%s/%s", path, entry->d_name); // 判斷條目類型 if (entry->d_type == DT_DIR) { printf("文件夾:%s\n", filePath); // 遞歸調用自身處理子文件夾 traverseDirectory(filePath); } else if (entry->d_type == DT_REG) { printf("文件:%s\n", filePath); } } // 關閉目錄 closedir(dir); } int main() { char* path = "."; // 要遍歷的目錄路徑 traverseDirectory(path); return 0; }
上述示例代碼將從當前目錄開始遍歷,打印出所有文件和文件夾的名稱。你可以根據需要修改路徑和處理方式。