Matlab脚本:批量提取目标类型的文件

Matlab脚本:统计提取目标类型的文件

本脚本用于统计目标文件路径下目标文件类型的文件名和路径

%% 寻找目标路径下目标文件类型的数目
% date:2021.01.09
% input:
%       文件夹路径
%       文件类型(m、txt、data)
% example:
%       [a] = find_files_in_dir('路径','m');

%% File Content
function [total_list] = find_files_in_dir( start_dir, filetype )
% 将文件夹及其子文件夹添加到搜索路径
subdirectories = genpath( start_dir );
% ispc - 确定版本是否适用于 Windows (PC) 平台
if ispc
    % 匹配正则表达式
    subdirectories = regexp( subdirectories, '[^;]*', 'match' );
else
    subdirectories = regexp( subdirectories, '[^:]*', 'match' );
end
% strrep - 查找并替换子字符串
% strrep(str,old,new)
filetype = strrep( filetype, '.', '' );
total_list = {};

for i = 1:length( subdirectories )
    % dir()列出当前文件夹中的文件和文件夹。
    files = dir( subdirectories{ i } );
    % 判断生成文件夹isdir属性 
    % isdir=1,代表文件夹,否则,代表文件
    % 获得文件夹目录中的文件
    files = files( ~[ files.isdir ] );
    files = { files.name }';
    % 比较字符串(不区分大小写),相同,返回1,否则,返回0
    if ~strcmpi( filetype, '*' )
        for j = 1:length( files )
            % 对比文件的扩展名与目标文件类型
            if strcmpi( file_get_extension( files{ j } ), filetype )
                % 获得匹配文件的路径
                total_list{ end  + 1, 1 } = subdirectories{ i };
                % 获得文件名称
                total_list{ end , 2 } = files{ j };
            end
        end
    else
        if ~isempty( files )
            directories = cell( length( files ), 1 );
            [ directories{ 1:end  } ] = deal( subdirectories{ i } );
            total_list = [ total_list;[ directories, files ] ];
        end
    end
end

% 获得文件的扩展名
function extension = file_get_extension( filename )
extension = '';
% strfind - 在其他字符串中查找字符串,返回起始索引
idx = strfind( filename, '.' );
if ~isempty( idx )
    % 获得文件的扩展名
    extension = filename( idx + 1:end  );
end
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值