hello i want to search for ( * .inf ) files in a folder
2 次查看(过去 30 天)
显示 更早的评论
hello i want to search for * .inf files in a folder taking into account the subfolders and after listing filenames in a table column.
0 个评论
采纳的回答
Adam Danz
2019-1-28
编辑:Adam Danz
2019-1-28
Here's a function that searches for files with a given extension. It searches through a chosen parent directory and all of its subfolder at all levels. At the end of the for-loop, you can choose wether the output (matchList) should list just the filenames or the entire path to the files. I recommend using the entire path in case you have duplicate file names.
% Name the parent directory and file extension
parentDir = 'C:\Users\foobar\Documents\MATLAB';
ext = 'inf'; %without the dot
% list all folders and subfolders
folderList = strsplit(genpath(parentDir), ';')';
% initialize loop vars
exp = sprintf('.+\\.%s', ext);
matchList = {};
% loop through each folder and search for files
for i = 1:length(folderList)
folderData = dir(folderList{i});
names = {folderData.name};
strLen = cellfun(@length, names);
endIdxCell = regexp(names, exp, 'end');
endIdx = zeros(size(endIdxCell));
endIdx(~cellfun(@isempty, endIdxCell)) = [endIdxCell{:}];
% matchList = [matchList; names(endIdx == strLen & endIdx > 0)']; % list filenames only
matchList = [matchList; fullfile(folderList{i}, names(endIdx == strLen & endIdx > 0))']; %list full paths
end
8 个评论
Adam Danz
2019-2-7
The hint does work if you're using it propery. It's a hint which means that the code isn't functional by itself. If you format your code so that it's more readable, I can more easily help.
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 File Operations 的更多信息
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!