A common question for people starting to program on Windows is,
“What makes a valid Windows file name?” You want to use this
information to make simplifying assumptions in your code: that
names can be no longer than MAX_PATH, that two names won't
differ only by case, etc. Unfortunately, the answer to what
makes a valid file name in Windows is not simple.  Due to the
layering of Windows architecture, the definition of a "legal"
file name may vary depending upon the component of the operating
system you are dealing with.  ·          NTFS and the Posix
subsystem have the most permissive definition of a "legal" name.
The name may be up to 32,768 Unicode characters long. The name
can contain trailing periods, trailing spaces, and two files may
have names that differ only in case (e.g., README.TXT and
readme.txt).  ·          The Win32 subsystem enforces additional
constraints on legal file names. The name can be at most
MAX_PATH characters long (defined in windef.h as 260
characters), may not have trailing dots or