I would like to be able to check from python if a given string could be a valid cross platform folder name – below is the concrete problem I ran into (folder name ending in .), but I’m sure there are some more special cases (e.g.: con, etc.).
Is there a library for this?
From python (3.2) I created a folder on Windows (7) with a name ending in dot (‘.’), e.g. (without square brackets): [What I’ve done on my holidays, Part II.]
When the created folder was ftp’d (to linux, but I guess that’s irrelevant), it did not have the dot in it anymore (and in return, this broke a lot of hyperlinks).
I’ve checked it from the command line, and it seems that the folder doesn’t have the ‘.’ in the filename
mkdir tmp.
dir
cd tmp
cd ..\tmp.
Apparently, adding a single dot at the end of the folder name is ignored, e.g.:
cd c:\Users.
works just as expected.
Nope there’s sadly no way to do this. For windows you basically can use the following code to remove all illegal characters – but if someone still has a FAT filesystem you’d have to handle these too since those are stricter. Basically you’ll have to read the documentation for all filesystem and come up with a complete list. Here’s the NTFS one as a starting point:
And then you need some “forbidden” name list as well to get rid of COM. Pretty much a complete mess that.. and that’s ignoring linux (although there it’s pretty relaxed afaik)