The trouble is that in the code line for writing a directory and also for making files, you must write only const char : SD.mkdir("a/b/c") in this i'll have only three folders;
That is not true. You can create any number of directory levels at once, using a dynamically defined string.
int year = 2013;
char dirName[24];
sprintf(dirName, "%d/Jan", year);
SD.mkdir((const char *)dirName);
should create a directory called Jan in one called 2013.
My question is: how I can use for example a for loop for increasing (for example an array, year[X]), for creating a new directory every year, and the same for month of course?
Why would year be an array? In the snippet about, you can increment year by 1 and get 2014/Jan created.
You could create an array of month names:
char monthNames[] = {"", "Jan", "Feb", "Mar", "Apr", ...
Then:
int month = 3;
sprintf(dirName, "%d/%s", year, monthNames[month]);
SD.mkdir((const char *)dirName);
should create a directory called Mar in one called 2013.