[英]Can't scan directory in order that files appear
我正在嘗試對可以包含子文件夾的文件夾執行 DFS。 目標是從目錄中找到所有.txt
文件。 我需要按照 DFS 找到它們的順序查找.txt
文件,並保留文件夾中文件的順序。
目前我用於掃描目錄的代碼使用scandir()
function:
int n = scandir(path, &namelist, NULL, alphasort);
這會按字母順序對文件夾中的文件進行排序,這並不是我想要的。
編輯:我試過使用 opendir() 和 readdir() 但這是以看似隨機的順序訪問文件。
int versionsort(const void *a, const void *b);
可以作為回調傳遞給scandir()
並在dirent.h
中聲明。
從上面鏈接的同一頁面:
glibc 的功能測試宏要求(參見 feature_test_macros(7)):
scandir()
,alphasort()
: _BSD_SOURCE || _SVID_SOURCE
versionsort()
:_GNU_SOURCE。
為了啟用特定功能,需要在包含dirent.h
之前定義這些宏。
從上面鏈接的同一頁面:
版本
versionsort()
在 2.1 版中被添加到 glibc。
請參閱此問題以了解如何檢查您的 glibc 版本。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.