moving folders main folder and then deleting the empty folders
7 次查看(过去 30 天)
显示 更早的评论
Hello,
I have one big folder, lets call "data", which has folders inside called 'person'.
Each "person" has specific folders, sometimes "SE1" and "SE3", sometimes SE1 and SE8, etc...,
except, i have hundreds of people
I want to put these SE1 folders into just "data" and remove the original folders they were held inside
how can I make such a script?
thank you!!
2 个评论
Walter Roberson
2021-2-8
To confirm, you would throw away person/SE3 and person/SE8 ? Throw away everything except person/SE1 ?
I take it that "person" for this purpose is variable, such as data/Amanda/SE1 data/Amanda/SE3 data/THX1138/SE1 data/BB8/SE1 ? But SE1 is a fixed name, right? When you do the moving, what should the new name be? data/Amanda/SE1 should be renamed to... what?
回答(1 个)
Sourabh Kondapaka
2021-2-11
Approaching this in a similar fashion to your question answered here
Code:
pathToData = fullfile(pwd, 'data');
dataFolder = dir(pathToData);
dirFlags = [dataFolder.isdir];
subFolders = dataFolder(dirFlags);
subFolders = subFolders(3:length(subFolders));
for k = 1 : length(subFolders)
person = subFolders(k).name;
personSubFolder = dir(fullfile(pathToData, person));
personSubFolder = personSubFolder(3:length(personSubFolder));
for j = 1: length(personSubFolder)
seFolder = personSubFolder(j).name;
srcFolder = fullfile(pathToData, person, seFolder);
destFolder = fullfile(pathToData, seFolder);
movefile(srcFolder, destFolder);
% fprintf('\n \n ------------- Moving from ---------- \n \n');
% disp(srcFolder);
% fprintf('\n \n To \n \n');
% disp(destFolder);
end
%Removing the person folder after moving all the folders within it into
%Data folder
rmdir(fullfile(pathToData, person));
end
Initial Folder Structure:
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/516157/image.png)
After executing the above script:
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/516162/image.png)
A similar question has been answered here
You can take the free course Matlab OnRamp
Note: As your query was simple enough, a for-loop approach was sufficient. If you need to achieve something much more complicated than this, please read up about Recursion, Backtracking
0 个评论
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!