matlab将一个文件夹中所有子文件夹中的子文件夹中的文件分别储存在结构体中
时间: 2023-07-29 07:10:32 浏览: 101
可以使用递归函数来实现。以下是一个示例代码:
```matlab
function fileStruct = readFiles(folderPath)
% 读取文件夹中所有文件并存储到结构体中
% 初始化结构体
fileStruct = struct('name', {}, 'path', {});
% 获取文件夹中所有文件和子文件夹
files = dir(folderPath);
% 遍历每个文件或文件夹
for i = 1:length(files)
% 忽略当前文件夹和上一级文件夹
if strcmp(files(i).name, '.') || strcmp(files(i).name, '..')
continue;
end
% 构建文件路径
filePath = fullfile(folderPath, files(i).name);
% 如果当前项是文件,则将其加入结构体
if ~files(i).isdir
% 添加到结构体
fileStruct(end+1).name = files(i).name;
fileStruct(end).path = filePath;
else
% 如果当前项是文件夹,则递归调用本函数
subFileStruct = readFiles(filePath);
% 将子文件夹中的文件加入结构体
fileStruct = [fileStruct, subFileStruct];
end
end
```
在这个函数中,我们首先使用 `dir` 函数获取文件夹中的所有文件和子文件夹。然后遍历每个文件和文件夹,并根据其类型执行不同的操作。如果当前项是文件,则将其添加到结构体中;如果当前项是文件夹,则递归调用本函数,并将子文件夹中的文件添加到结构体中。最终返回储存了所有文件信息的结构体。
阅读全文