In the code I maintain I run across:
from ctypes.wintypes import MAX_PATH
I would like to change it to something like:
try:
from ctypes.wintypes import MAX_PATH
except ValueError: # raises on linux
MAX_PATH = 4096 # see comments
but I can't find any way to get the value of max filesystem path from python (os, os.path, sys...
) - is there a standard way or do I need an external lib ?
Or there is no analogous as MAX_PATH in linux, at least not a standard among distributions ?
try:
MAX_PATH = int(subprocess.check_output(['getconf', 'PATH_MAX', '/']))
except (ValueError, subprocess.CalledProcessError, OSError):
deprint('calling getconf failed - error:', traceback=True)
MAX_PATH = 4096
The way to do it correctly is to use the
os.pathconf
oros.fpathconf
withPC_
prefixed names:Notice that the maximum length of a path component may vary from directory to another, as it is filesystem dependent!
You can read this values from files:
Or use subprocess.check_output() with getconf function:
as in the following example:
to get values and fpath to set different values for files.