52matlab技术网站,matlab教程,matlab安装教程,matlab下载

标题: 剪切或拷贝所有一个文件夹中所有文件及子文件夹内的文件到另外一个文件夹 [打印本页]

作者: matlab的旋律    时间: 2017-3-30 14:37
标题: 剪切或拷贝所有一个文件夹中所有文件及子文件夹内的文件到另外一个文件夹
本帖最后由 matlab的旋律 于 2017-3-30 14:47 编辑

      今天遇到一个小问题,但是需要重复工作,就花了一个来小时写matlab代码来处理,问题是这样的,文件夹里面有许多txt文件和子文件夹,同时子文件夹又有许多txt文件和子文件夹,这样一共有三到四层,我需要将这些txt文件全部剪切到主文件夹,如图所示:
fullFileName = 'C:\Users\Administrator\Desktop\code\test'; %主文件夹得路径
MoveFileToMainPath(fullFileName,fullFileName,'.txt');%调用处理函数

function MoveFileToMainPath(main_path,sub_path,fileExtension)
%函数内容
maindir = dir(sub_path);%列举文件夹中所有内容
sub_main_path = sub_path;%保存当前子文件夹路径
for i = 1 : length(maindir )
    if isempty(strfind(maindir( i ).name, '.' ))% 判断是否为文件夹
        sub_path = fullfile(sub_main_path,maindir( i ).name);%生成当前文件夹内的子文件夹路径
        MoveFileToMainPath(main_path,sub_path,fileExtension);%回调
    elseif ~isempty(strfind( maindir( i ).name,fileExtension))  && ~strcmp(main_path,sub_main_path)%判断是否为子文件夹内的文件
            subFile = fullfile(sub_path, maindir( i ).name);
            movefile(subFile,main_path)%剪切到主文件夹中,如果是拷贝,用copyfile
    end
end

运行程序,得到结果如图4


作者: matlab的旋律    时间: 2017-3-30 14:51
当然如果觉得文件夹里面的子文件夹不好看,可以使用rmdir(filepath,'s')这样的命令删除




欢迎光临 52matlab技术网站,matlab教程,matlab安装教程,matlab下载 (http://www.52matlab.com/) Powered by Discuz! X3.2