MATLAB 批量移动 TIF 文件至分类文件夹


前言

本代码用于从指定的源文件夹 (sourceFolder) 中筛选所有 .tif 文件,并根据文件名的特定关键词(Daynight 和 FDI)将其分类移动到相应的目标文件夹 (targetDaynightFolder 和 targetFDIFolder)。


一、步骤

主要步骤如下:

定义源文件夹和目标文件夹:确保目标文件夹存在,不存在则创建。

获取所有 .tif 文件:扫描源文件夹,提取所有 .tif 格式的文件。

文件分类移动:

    若文件名包含 Daynight,则移动至 targetDaynightFolder 目录。

    若文件名包含 FDI,则移动至 targetFDIFolder 目录。

执行完成提示:程序运行完毕后,显示“所有文件已移动完成!”的提示信息。

注:代码中包含一段被注释掉的旧版本,该版本原本是按年份子文件夹筛选 .tif 文件再进行分类,而当前版本已简化为直接遍历源文件夹下的所有 .tif 文件,提高了效率。

二、代码

lc; clear; close all;

% 定义源文件夹(包含所有 tif 文件)
sourceFolder = 'CSV\sum\day\';

% 定义目标文件夹
targetDaynightFolder = '\daynight';
targetFDIFolder = '\FDI';

% 确保目标文件夹存在,如果不存在则创建
if ~exist(targetDaynightFolder, 'dir')
    mkdir(targetDaynightFolder);
end
if ~exist(targetFDIFolder, 'dir')
    mkdir(targetFDIFolder);
end

% 获取 sourceFolder 目录下的所有 tif 文件
tifFiles = dir(fullfile(sourceFolder, '*.tif'));

% 遍历所有 tif 文件
for j = 1:length(tifFiles)
    filePath = fullfile(sourceFolder, tifFiles(j).name); % 当前文件路径
    
    % 判断是 Daynight 还是 FDI 文件
    if contains(tifFiles(j).name, 'Daynight', 'IgnoreCase', true)
        movefile(filePath, fullfile(targetDaynightFolder, tifFiles(j).name));
    elseif contains(tifFiles(j).name, 'FDI', 'IgnoreCase', true)
        movefile(filePath, fullfile(targetFDIFolder, tifFiles(j).name));
    end
end

disp('所有文件已移动完成!');

% % 定义源文件夹(包含2000-2021年的子文件夹)
% sourceFolder = '\sum\day\';
% 
% % 定义目标文件夹
% targetDaynightFolder = '\daynight';
% targetFDIFolder = '\FDI';
% 
% % 确保目标文件夹存在,如果不存在则创建
% if ~exist(targetDaynightFolder, 'dir')
%     mkdir(targetDaynightFolder);
% end
% if ~exist(targetFDIFolder, 'dir')
%     mkdir(targetFDIFolder);
% end
% 
% % 获取所有年份文件夹
% yearFolders = dir(sourceFolder);
% yearFolders = yearFolders([yearFolders.isdir]); % 仅保留文件夹
% yearFolders = yearFolders(~ismember({yearFolders.name}, {'.', '..'})); % 去除无效目录
% 
% % 遍历每个年份文件夹
% for i = 1:length(yearFolders)
%     yearPath = fullfile(sourceFolder, yearFolders(i).name); % 该年份的完整路径
%     
%     % 获取该文件夹下的所有 tif 文件
%     tifFiles = dir(fullfile(yearPath, '*.tif'));
%     
%     % 遍历所有 tif 文件
%     for j = 1:length(tifFiles)
%         filePath = fullfile(yearPath, tifFiles(j).name); % 当前文件路径
%         
%         % 判断是 Daynight 还是 FDI 文件
%         if contains(tifFiles(j).name, 'Daynight', 'IgnoreCase', true)
%             movefile(filePath, fullfile(targetDaynightFolder, tifFiles(j).name));
%         elseif contains(tifFiles(j).name, 'FDI', 'IgnoreCase', true)
%             movefile(filePath, fullfile(targetFDIFolder, tifFiles(j).name));
%         end
%     end
% end
% 
% disp('所有文件已移动完成!');

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值