Thank you for your reply!
Hmm, at first I thought: darn, have I been caught out again with this nasty mistake; but the 8.3 file name is 12 chars long plus \0 = 13.
123456789012
20170702.csv
I have done further testing by using the standard examples; list file, readwrite, card info... they all work fine.
So it must be something in my code.
I have also deleted a file, after that, the directory (on Windows) looks like this -- see attachment...
I have no further news at present, but will try the SDfat library... and report back.