Change the folder names from one digit to 2 digit numbers

2 次查看(过去 30 天)
I have a folder 'data' full of folders which are named like this:
E:\data\foldername1\
E:\data\foldername2\
E:\data\foldername3\
...
E:\data\foldername100\
E:\data\foldername11\
...
I would like to rename the folders with one digit (foldername1- foldername9) with two digits, like that:
E:\data\foldername01\
E:\data\foldername02\
...
As I have lots of those 'data' folders I would like to automate it. I tried without success so far... Could anyone please help me?
  2 个评论
Azzi Abdelmalek
Azzi Abdelmalek 2016-4-26
If you rename E:\data\foldername1\ to E:\data\foldername10\, then what about the existing E:\data\foldername10\?

请先登录,再进行评论。

采纳的回答

Alessandro Masullo
Alessandro Masullo 2016-4-26
You can use dir, sscanf, sprintf and movefile.
Use dir to get the list of the folders.
Use scanf to get the number of the folder:
sscanf('folder39','folder%d')
ans =
39
Use sprintf to write the new folder name
sprintf('foldername%04d',15)
ans =
foldername0015
Use movefile to rename your folder.
  2 个评论
Butterflyfish
Butterflyfish 2016-4-27
Thank you! Just running into a problem here:
NewName = sprintf(thisDirName '%02d', EndNumber)
Just because my folder names are actually all different to one another I cannot use
sprintf('foldername%04d',15)
Any suggestion?
Butterflyfish
Butterflyfish 2016-4-27
Figured smth out:
NewName = sprintf('%s%02d',thisDirName(1:end-1), EndNumber2)
working now! Thanks a lot for the help

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 File Operations 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by