Again, for those who use Keil's middleware - FAT frename function has a nasty bug: if new name contains path (for example "M:\name.txt") the whole string will be used as new name. In this particular case, file will be renamed to M:\name.txt - and now it's not accesible anymore since it contains forbidden characters ':' and '\'. Behaviour is completely wrong. If the path is specified, frename should copy old file to specified destination. In my case, I've created a wrapper function that corrects this issue, which I call instead of frename.
no it's not supposed to, I just tried it. Seems like the only way to move a file is to open a file to move to, and fread() from the current file and fwrite() to the new file. Kind of a pain.