Matlab分选文件,移动/复制文件到不同文件夹

在日常处理中,会碰到需要把放在一个文件夹中的文件分别移动到不同文件夹的需求,如

我们需要把同一组的图像放到同一个文件夹里,使用了如下matlab代码

 

close all
clear
clc

D = dir('文件夹1\*.tif'); %文件夹1是原始图像存放位置,.tif 为数据格式,可修改数据格式操作不同的数据

part_number = 15; %一共分几组
slice_number = 589; %一组有几张

for i = 1:part_number
    mkdir('文件夹1\',num2str(i)); %创建
    for j = (1+slice_number*(i-1)):(slice_number*i)
        name = D(j,1);
        movefile(strcat('文件夹1\',name.name), strcat('文件夹2\',num2str(i))); %文件夹2为图像移动到的根目录位置,把图像剪切到文件夹2中

        copyfile(strcat('文件夹1\',name.name), strcat('文件夹2\',num2str(i))); %文件夹2为图像移动到的根目录位置,把图像复制到文件夹2中
    end
end

运行结果

你可以使用递归的方法来移动文件夹里的所有文件夹里的文件。以下是一个示例代码: ```matlab % 定义源文件夹和目标文件夹 source_folder = 'C:\source_folder'; target_folder = 'C:\target_folder'; % 移动文件夹里的所有文件 move_files(source_folder, target_folder); % 递归移动所有文件 function move_files(source_folder, target_folder) % 获取源文件夹下的所有文件和子文件夹 files = dir(source_folder); % 遍历所有文件文件夹 for i = 1:length(files) % 如果是子文件夹且不是'.'或'..'文件夹 if files(i).isdir && ~strcmp(files(i).name, '.') && ~strcmp(files(i).name, '..') % 构建子文件夹的源和目标路径 subfolder_source = fullfile(source_folder, files(i).name); subfolder_target = fullfile(target_folder, files(i).name); % 创建目标子文件夹 mkdir(subfolder_target); % 递归移动文件夹下的所有文件 move_files(subfolder_source, subfolder_target); % 如果是文件 elseif ~files(i).isdir % 构建文件的源和目标路径 file_source = fullfile(source_folder, files(i).name); file_target = fullfile(target_folder, files(i).name); % 移动文件 movefile(file_source, file_target); end end end ``` 在代码中,`move_files`函数使用递归的方法来移动文件夹里的所有文件夹里的文件。函数首先获取源文件夹下的所有文件和子文件夹。然后,遍历所有文件文件夹,如果是子文件夹,则构建子文件夹的源和目标路径,并创建目标子文件夹。接下来,递归移动文件夹下的所有文件。如果是文件,则构建文件的源和目标路径,并使用`movefile`函数移动文件。注意,`mkdir`函数用来创建目标子文件夹
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值