0
我需要編寫一個程序,該程序從用戶處獲取根目錄和最小文件大小,然後計算大於用戶在所有子目錄中輸入的大小的所有文件。遞歸計數
出於某種原因,我的遞歸只計算當前工作目錄中的文件,而不計入子目錄中的文件。任何線索如何解決這個問題?它正確地計算工作目錄中的文件數量。
我需要編寫一個程序,該程序從用戶處獲取根目錄和最小文件大小,然後計算大於用戶在所有子目錄中輸入的大小的所有文件。遞歸計數
出於某種原因,我的遞歸只計算當前工作目錄中的文件,而不計入子目錄中的文件。任何線索如何解決這個問題?它正確地計算工作目錄中的文件數量。
當您遞歸調用函數時,您需要正確指定路徑。 dentry->d_name
僅引用文件名;它不包含它所屬的目錄名稱。
否則,它會嘗試緩存到可能不存在的目錄中。 (或者,如果有一個名稱與父目錄相同的目錄,它將嘗試無限遞歸到同一個目錄中)。
char path[PATH_MAX];
....
snprintf(path, sizeof path, "%s/%s", fileName, dentry->d_name);
countFiles(path, count, size);
對於鬧意,把一個符號連接到一個包含目錄到一個(子)目錄中。 – Deduplicator 2014-11-02 02:24:21