簡體   English   中英

Linux Dirent:獲取目錄中所有文件夾的列表

[英]Linux Dirent: Getting a list of all folders inside a directory

以下是我用來獲取當前文件夾內所有文件夾列表的代碼段。 我想獲得紅色的“。” 和列表中的“ ..”文件夾,但不知何故。

const char* root_dir_c  = root_dir.c_str();
DIR *pdir               = opendir(root_dir_c);
struct dirent *entry    = readdir(pdir);

while (entry != NULL){
    if  ((entry->d_type == DT_DIR) && (entry->d_name != ".") && (entry->d_name != "..")){
        // DO STUFF
    }
    entry = readdir(pdir);
}

你能幫忙嗎?

entry->d_name是一個char array ,不適用於!= ,您將需要使用strcmp或類似名稱。

dirent結構實際上使用char*而不是std::string 因此,您將比較兩個指針值,它們永遠不可能相同。

在這種情況下,您必須使用strcmp()

strcmp(entry->d_name,".") == 0

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM