目录递归遍历不超过 2 级。为什么会这样?
==================================================== =========== currentFolderDir = '.'; % 密码 % path('C:\Users\EI\Documents\MATLAB\OO\面向对象的简单对象创建'); 深度等级 = 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:depthLevel fprintf('\t\t'); 结尾 fprintf('%s\n', currentFile); % 打印条目的名称 %isdir(currentFile) % [ERR] 不能超过 2 级 %暂停; if (isdir(currentFile)) % 检查是否为目录 文件夹计数 = 文件夹计数 + 1; fprintf('\n有 %d 个文件夹。\n', folderCount); 暂停 depthLevel = depthLevel + 1; fprintf('======================================\n'); fprintf('深度等级:%d\n', depthLevel); % 获取目录中所有条目的列表 条目 = 目录(当前文件); % 条目 (1).name = '.' % 条目 (2).name = '..' numberOfEntries = 长度(条目);% 包括当前文件夹和指向上一级文件夹的指针 % 确保列表不为空 % if( (numberOfEntries - 2) ~= 0 ) % 2: % entries(1).name = '.'; % 条目 (2).name = '..' if(numberOfEntries ~= 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; depthLevel = depthLevel - 1; % 退出水平 结尾