Why exception from os.path.exists()?
eryk sun
eryksun at gmail.com
Tue Jun 5 13:34:09 EDT 2018
On Tue, Jun 5, 2018 at 3:28 PM, Peter J. Holzer <hjp-python at hjp.at> wrote:
>
> Now, if MacOS uses something like that, this is a different matter.
> Presumably (since HFS+ is a native file system) the kernel deals with
> NUL characters in a straightforward manner. It might even have a
> (non-POSIX) API to expose such filenames. Even if it hasn't, presumably
> the mapping back and forth is done in a very low level library used by
> all (or most) of the applications, so that they all show consistently
> the same filename.
The Linux subsystem in Windows 10 has to use character escaping. The
root file system is stored in the NTFS directory
"%LocalAppData%\Packages\<distro package name>\LocalState\rootfs". It
escapes invalid NTFS characters (as implemented by the ntfs.sys
driver) using the hex code prefixed by "#". Thus "#" itself has to be
escaped as "#0023". For example:
$ touch '\*?<>|#'
$ ls '\*?<>|#'
\*?<>|#
With CMD in the above directory, we can see the real filename:
> dir /b #*
#005C#002A#003F#003C#003E#007C#0023
More information about the Python-list
mailing list