Change the folder names from one digit to 2 digit numbers

6 visualizaciones (últimos 30 días)
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 comentarios
Azzi Abdelmalek
Azzi Abdelmalek el 26 de Abr. de 2016
If you rename E:\data\foldername1\ to E:\data\foldername10\, then what about the existing E:\data\foldername10\?
Butterflyfish
Butterflyfish el 27 de Abr. de 2016
Sorry I meant foldername01 not 10, will edit the question

Iniciar sesión para comentar.

Respuesta aceptada

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

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Printing and Saving en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by