Eryk Sun added the comment:
> I'm inclined to believe that this is a bug in the ImDisk device driver
Junctions, and other filesystem reparse points, are implemented by volume
devices, not disk devices. NTFS and ReFS support reparse points, but FAT,
FAT32, and exFAT do not. Does the current filesystem claim to support reparse
points? Here's how to check this:
import ctypes
kernel32 = ctypes.WinDLL('kernel32', use_last_error=True)
FILE_SUPPORTS_REPARSE_POINTS = 0x00000080
def volume_supports_reparse_points(root_path):
flags = ctypes.c_uint()
if not kernel32.GetVolumeInformationW(root_path,
None, 0, None, None,
ctypes.byref(flags),
None , 0):
raise ctypes.WinError(ctypes.get_last_error())
return bool(flags.value & FILE_SUPPORTS_REPARSE_POINTS)
For example:
>>> volume_supports_reparse_points('C:\\')
True
Win32JunctionTests creates a junction to the "Lib/test" directory in the
current directory. It should create a temporary target directory instead of
using "Lib/test".
I installed ImDisk Virtual Disk 2.0.9 and was able to create a valid junction
on an NTFS RAM disk. What are the steps required to reproduce the problem?
----------
nosy: +eryksun
_______________________________________
Python tracker <[email protected]>
<http://bugs.python.org/issue26658>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com