Change the folder names from one digit to 2 digit numbers

4 vues (au cours des 30 derniers jours)
Butterflyfish
Butterflyfish le 26 Avr 2016
Commenté : Butterflyfish le 27 Avr 2016
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 commentaires
Azzi Abdelmalek
Azzi Abdelmalek le 26 Avr 2016
If you rename E:\data\foldername1\ to E:\data\foldername10\, then what about the existing E:\data\foldername10\?
Butterflyfish
Butterflyfish le 27 Avr 2016
Sorry I meant foldername01 not 10, will edit the question

Connectez-vous pour commenter.

Réponse acceptée

Alessandro Masullo
Alessandro Masullo le 26 Avr 2016
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 commentaires
Butterflyfish
Butterflyfish le 27 Avr 2016
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 le 27 Avr 2016
Figured smth out:
NewName = sprintf('%s%02d',thisDirName(1:end-1), EndNumber2)
working now! Thanks a lot for the help

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Printing and Saving dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by