SDFat error file.open and what does it really mean for a file to be 'open'

OK I now understand that the C statement:

char[6] = i/10 + '0'

simply converts between a single digital decimal number 'i' and it's equivalent ASCII character code (necessary to build a filename in a character array) by adding (decimal) 48 to each number between 0 and 9.

This works because the ASCII character code for the characters '0' through '9' are ASCII 48 to 57

The colon character ':' is ASCII 58 which is the first thing you hit if drive out of the numerals and into non alphanumeric territory in the ASCII table.