文章目錄
- 前言
- 一、步驟
- 二、代碼
前言
本代碼用于從指定的源文件夾 (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('所有文件已移動完成!');