Mattis Seehaus Mattis Seehaus - 3 months ago 20
C Question

Insert Integer in char array to use it in rename function

it´s long ago since i tried to code sth. but i´m looking for a simple way of iterating through some folders to rename the containing files.

i have folder which look like 'MORE0001', 'MORE0002' etc. They contain all one file with the same name 'Data'

What i want to do is to rename all containing files to 'data.dat' (and maybe to find a way to extract the files out of the folders..)

so this is what it looks like:

for (int i=0; i<10;i++){

char oldname[]= "directory/MORE0001/data";
char newname[]= "directory/MORE0001/data.dat";

rename(oldname,newname);

}


this works pretty fine, but i want to change the
0001
within the for-loop to
0002
etc..

hope you guys can help me.. i did not find an answer yet to this simple question

Answer

Use sprintf:

char oldname[100];
char newname[100];
sprintf(oldname, "directory/MORE%04d/data", i);
sprintf(newname, "directory/MORE%04d/data.dat", i);

The 100 should be big enough to hold the pathname. If it's too short, your program will crash or (worse) rename your files into having unusable names.