Hi
I know this is not a RTX or Cortex M3 related question but I am desperate for some ideas about why elm chan's FatFs does will create a directory that is more than 2 levels deep at times. The FatFs forum is not very active with answers and I was hoping with so many experienced develops here that I could get an idea as to what the issue is.
The odd/strange thing is that I can create (or so it reports) directories 5 levels deep (first group below) but when I try to create a second group of directories using the same type of sequence, the 3th level directory name (file) is reported as not found.
Just to do a sanity check I added code to try to make the directory a 2nd time and it should report back EXISTS but when creating the 3rd level, f_mkdir reports OK again. That is wrong.
I just don't understand why something so basic is not working.
I have Long FileNames enabled, Relative Paths enabled,
// all of these f_mkdir calls return OK res = f_mkdir("Results"); res = f_mkdir("Results/RunTableName1"); res = f_mkdir("Results/RunTableName1/M1odeName1"); res = f_mkdir("Results/RunTableName1/M1odeName1/G1W001"); res = f_mkdir("Results/RunTableName1/M1odeName1/G1W001/A1qNodeID1"); res = f_mkdir("Results/RunTableName1/M1odeName1/G1W001/A2qNodeID2"); res = f_mkdir("Results/RunTableName1/M1odeName1/A1E001"); res = f_mkdir("Results/RunTableName1/M1odeName1/A1E001/A1qNodeID1"); res = f_mkdir("Results/RunTableName1/M1odeName1/A1E001/A2qNodeID2"); res = f_mkdir("Results/RunTableName1/M1odeName1/D1C001"); res = f_mkdir("Results/RunTableName1/M1odeName1/D1C001/A1qNodeID1"); res = f_mkdir("Results/RunTableName1/M1odeName1/D1C001/A2qNodeID2");
// from debugging I have found that the 4th directory name is being // reported as NO_FILE even though it says it successfully created // the directory earlier res = f_mkdir("Results/RunTableName2"); // OK res = f_mkdir("Results/RunTableName2"); // EXISTS res = f_mkdir("Results/RunTableName2/ModeName1"); // OK res = f_mkdir("Results/RunTableName2/ModeName1"); // OK -> should be EXISTS res = f_mkdir("Results/RunTableName2/ModeName1/GW001"); // NO PATH res = f_mkdir("Results/RunTableName2/ModeName1/GW001"); // NO PATH