copy文件中指定 文本类型文件(*.txt, *.c, *.h等文件),支持子目录递归拷贝,用 matlab 实现。

srcDirName = 'F:\my_source_direction\';
destDirName = 'F:\my_destination_direction\';
% suffix = 'txt';
% suffix = 'cpp';
% suffix = 'c';
suffix = 'h';
% suffix = 'hcpp';
myCopyFileAndSubDir(srcDirName, destDirName, suffix);




function  myCopyFileAndSubDir(srcDirName, destDirName, suffix)
srcFiles = dir([srcDirName, '\', '*.', suffix]);% 获取特定后缀的文件名

% get file number
nFrames=size(srcFiles,1)
for k=1:nFrames
    srcfile_name=srcFiles(k).name;
    srcfile_basename = srcfile_name(1:end-length(suffix)-1);  %去除输入文件的后缀
    srcfile_fullname = [srcDirName '\' srcfile_name];
    
    destfile_fullname = [destDirName '\' srcfile_basename  '.', suffix ]; % 假设输出文件后缀 与输入后缀相同
    fid_src=fopen(srcfile_fullname, 'r');
    fid_dest=fopen(destfile_fullname, 'w');
    while 1
        tline = fgetl(fid_src);
        if ~ischar(tline ),
            break;
        end
        % disp(tline)
        fprintf(fid_dest, '%s\n', tline );
    end
    fclose(fid_src);
    fclose(fid_dest);
end

srcSubDir = dir(srcDirName); % 获取所有文件名以及子文件夹名
for j=1:length(srcSubDir)
    if( isequal( srcSubDir( j ).name, '.' )||...
            isequal( srcSubDir( j ).name, '..')||...
            ~srcSubDir( j ).isdir)               % 如果不是目录则跳过
        continue;
    end
    srcSubDirName = fullfile( srcDirName, srcSubDir( j ).name )
    destSubDirName = fullfile( destDirName, srcSubDir( j ).name );
    mkdir(destSubDirName);
    % 递归调用
    myCopyFileAndSubDir(srcSubDirName, destSubDirName, suffix);
end





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值