文章目录
- 前言
- 一、步骤
- 二、代码
前言
本代码用于从指定的源文件夹 (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
enddisp('所有文件已移动完成!');% % 定义源文件夹(包含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('所有文件已移动完成!');