If you think "I know, I'll build it on top of SharePoint" the problem was inside you all along.
% is used to surround environment variables for interpretation, for example.
It’s pretty irritating when files and folders on my Mac can’t be uploaded to Teams due to this limitation. It’s only forbidden for Windows users.
I think the only character that Macs don't allow is the colon. AFAIK, everything else is fair game, even emojis.
I just created a project with "ê" in the title. I wonder if I'll be able to share that with my Windows coworkers on Teams.
What people think about those CON, PRN, AUX, NUL etc are not filesystem limitation.
And while we are here - nor backslash, nor forward slash are used in NTFS. It can care less about what char do you use for a directory separator. Just be sure to update your APIs.
CON:? Really? It's not 1974 anymore.
People in glass houses shouldn't throw stones.
Edit: argh, HN deleted the emoticon. Ironic.
FWIW, I generally expect emojis to be more compatible than other symbols, because they have no legacy meanings - ex. ™ has never been a path separator, or indeed anything else.
Maybe it goes without saying, but for completeness, / is not allowed in filenames, and neither is null terminator (0x00 or \0) on mac either.
On Linux, only / and null terminator are banned from filenames.
For users of other platforms (at least 90% of desktop market) it would just display as slashes. Just not implementing this workaround would make it predictable when moving and using files.
It is painful being forced up update things due to software changing underneath you, but there must be a middle road.
According to https://en.m.wikipedia.org/wiki/Filename , reserved characters are:
HFS:
> :
HFS+:
> : on disk, in classic Mac OS, and at the Carbon layer in macOS; / at the Unix layer in macOS
APFS:
> In the Finder, filenames containing / can be created, but / is stored as a colon (:) in the filesystem, and is shown as such on the command line. Filenames containing : created from the command line are shown with / instead of : in the Finder, so that it is impossible to create a file that the Finder shows as having a : in its filename.
TIL about a 'carbon layer' and 'POSIX layer'
There's also the special treatment of "", ".", and ".." (that is, a file or directory name consisting entirely of zero, one, or two dots), and the convention that a name starting with a dot is hidden.
It is a UNIX shell implementation level convention. The file system and the kernel don't care, and a shell is not obliged to honour the convention.
Colon is allowed in the filesystem; it's displayed as a forward slash in the UI.
(There's historical reasons they do this: Classic Mac OS used colon as a path separator.)
Bonus: You can create the file C:\con\con using NT Native API filesystem calls. Someone even made a video of installing Windows into C:\con\con, and the kernel-side stuff works beautifully, and the explorer shell side dies horribly.
At some point, I think it would only play sound files in the program's folder. I have the vague feeling that it was later changed to an AOL-created subfolder unique to each Windows user.
So, just like running Windows normally then? :D
Yes, OneDrive client is restricted by the Win32 API in terms of allowable file names/path length (which is now 32k but Office doesn't respect MAX_PATH and implements its own ~250 path length limitation).