ディレクトリの再帰的トラバーサルは 2 レベルを超えません。これはなぜですか?
================================================== =========== currentFolderDir = '.'; % pwd % path('C:\Users\EI\Documents\MATLAB\OO\Simple Object Creation in Object Oriented'); 深さレベル = 0; フォルダ数 = 0; ファイル数 = 0; fprintf('====================================\n'); fprintf('深度レベル: %d\n', depthLevel); [folderCount、fileCount] = fileDirectoryRecursiveTraversal (currentFolderDir、depthLevel、folderCount、fileCount); ================================================== =========== 関数 [folderCount、fileCount] = fileDirectoryRecursiveTraversal (currentFile、depthLevel、folderCount、fileCount) i = 1 の場合:深さレベル fprintf('\t\t'); 終わり fprintf('%s\n', currentFile ); % エントリの名前を表示 %isdir(currentFile) % [ERR] レベル 2 を超えることはできません %一時停止; if (isdir(currentFile)) % ディレクトリかチェック フォルダ数 = フォルダ数 + 1; fprintf('\n%d 個のフォルダーがあります。\n', folderCount); 一時停止 深さレベル = 深さレベル + 1; fprintf('====================================\n'); fprintf('深度レベル: %d\n', depthLevel); % ディレクトリ内のすべてのエントリのリストを取得する エントリ = dir(現在のファイル); % エントリ (1).name = '.' % エントリ (2).name = '..' numberOfEntries = 長さ (エントリ); % 現在のフォルダーとフォルダーへのポインターを含む 1 レベル上 % リストが null でないことを確認してください % if( (numberOfEntries - 2) ~= 0 ) % 2: % エントリ (1).name = '.'; % エントリ (2).name = '..' 場合 (エントリー数 ~= 2) % すべてのエントリをループします i = 3 の場合:numberOfEntries % トラバースする再帰呼び出し [folderCount, fileCount] = fileDirectoryRecursiveTraversal( entry(i).name, depthLevel, folderCount, fileCount); % i = 3:numberOfEntries 終わり fprintf('\n深度レベル: %d\n', depthLevel); fprintf('%d 個のファイルがあります。\n\n', fileCount); ファイル数 = 0; そうしないと % disp('cccccccccccccccccccc') ファイル数 = 0; % 空のフォルダ 終わり そうしないと ファイル数 = ファイル数 + 1; フォルダ数 = 0; 終わり フォルダ数 = フォルダ数 - 1; 深さレベル = 深さレベル - 1; % 終了レベル 終わり