Renaming folders

조회 수: 11 (최근 30일)
ch basit
ch basit 2011년 4월 14일
댓글: matlab noob 2019년 4월 10일
I have many folder within a folder. I want to rename these folders in such a way that a string " 1-4 " is added to the end of all the folders name. And if any folder already has 1-4 at end leave that folder and change the names for others.
Example A1_ A2_ A3_ A4_1-4 A5_
Renamed folders A1_1-4 A2_1-4 A3_1-4 A4_1-4 A5_1-4

답변 (2개)

Andrew Newell
Andrew Newell 2011년 4월 14일
  댓글 수: 2
Walter Roberson
Walter Roberson 2011년 4월 14일
Does that work for folders (directories) ?
Andrew Newell
Andrew Newell 2011년 4월 14일
Yes.

댓글을 달려면 로그인하십시오.


Jarrod Rivituso
Jarrod Rivituso 2011년 4월 15일
I had a problem just like this once and I found recursion to be very helpful (though you have to of course be careful to avoid infinite recursion).
Here's an example function I just created. It essentially does a depth-first recursion down the directory tree, changing directory names as it goes.
function changeDirNames(dirName)
dirResult = dir(dirName);
allDirs = dirResult([dirResult.isdir]);
allSubDirs = allDirs(3:end);
for i = 1:length(allSubDirs)
thisDir = allSubDirs(i);
thisDirName = thisDir.name;
if ~strcmp(thisDirName(end-2:end),'1-4')
oldname = fullfile(dirName,thisDir.name);
newname = [fullfile(dirName,thisDir.name) '1-4'];
movefile(oldname,newname);
end
changeDirNames(newname);
end
To call it, use something like this:
changeDirNames(pwd)
  댓글 수: 2
ch basit
ch basit 2011년 4월 21일
Thanks a lot
matlab noob
matlab noob 2019년 4월 10일
If I would like to add 'Patient(1 spacing)' before the exsisting folder name, how do I rewrite the "(3:end)" or "if ~strcmp(thisDirName(end-2:end),'Patient')".
Thank you.

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Startup and Shutdown에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by