簡體   English   中英

無法掃描目錄以顯示文件

[英]Can't scan directory in order that files appear

我正在嘗試對可以包含子文件夾的文件夾執行 DFS。 目標是從目錄中找到所有.txt文件。 我需要按照 DFS 找到它們的順序查找.txt文件,並保留文件夾中文件的順序。

目前我用於掃描目錄的代碼使用scandir() function:

int n = scandir(path, &namelist, NULL, alphasort);

這會按字母順序對文件夾中的文件進行排序,這並不是我想要的。

編輯:我試過使用 opendir() 和 readdir() 但這是以看似隨機的順序訪問文件。

根據versionsort 手冊頁

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之前定義這些宏。


第二件事要檢查:glibc 版本

從上面鏈接的同一頁面:

版本

versionsort()在 2.1 版中被添加到 glibc。

請參閱此問題以了解如何檢查您的 glibc 版本。

暫無
暫無

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

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