invalid file name chars
BlitzMax Forums/BlitzMax Programming/invalid file name chars
| ||
Hi, I've banned the following characters from file names: "|*\/:;~?<> But can you think of any more that might screw things up, especially for non-english keyboard layouts? Thanks. |
| ||
The plus sign "+" could mess things up too; it's supported through the windows command line as a way to join files.C:\>copy b.txt+c.txt a.txt b.txt c.txt 1 file(s) copied. Other characters not supported by windows include the comma "," and the equals "=" You should also watch out for the "%" sign because this is used to reference variables. Consider the following: C:\>echo Hello > %PROMPT%.txt C:\>dir *.txt Volume in drive C is Sys Volume Serial Number is B84E-DC4E Directory of C:\ 03/10/2007 14:58 8 $P$G.txt 11 File(s) 8 bytes 0 Dir(s) 147,663,589,376 bytes free |
| ||
Thanks I forgot about batch file stuff, will add +,=% :-) |
| ||
>>non-english keyboard layouts? Gery, in my experience I have a BIG issue when using European characters, that'll cause Chinese/Japanese/Korean OSes fail to load file. (Just happened when I play TECNO and I contacted auther for solution) If the requirements is "stable on all possible OSes", alphabet chars, numbers and "_" are safer. |
| ||
Can you elaborate yoko? thx. |
| ||
If you're going for maximum stability and security, you should white list the characters you want to allow rather than black list the ones you want to deny. I'd suggest: A-Z a-z 0-9 - _ Also, and I'm sure you know this but others reading the thread might not, keep in mind that some OSes have case-sensitive file names, so ABCD.txt and abcd.txt could be different files. |
| ||
yep thanks. whitelist could be the way to go I just though I might let the players have some freedom of expression in their names which get turned into filenames. |
| ||
It really depends on how much security and stability you need for your app. If you're doing a web application, I would definitely white list, since otherwise it could be open to remote attacks. If you're making a single player game, a black list of the characters mentioned by you and others above would probably suffice. |