目录递归遍历不超过 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; % 退出水平
结尾