Skip to content Skip to sidebar Skip to footer

Windows Path Too Long

Following snippet shows how to extract the target of a shortcut in Windows: import win32com.client shell = win32com.client.Dispatch('WScript.Shell') fp = r'C:\very_long_path\to\a\l

Solution 1:

I believe the limitations you are facing are within the win32com.client.Dispatch("WScript.Shell") this is why you are facing the 260 character limitation and the prefixing with \\?\ is not solving your problem.

You will have to work around it by

  • copying folder to a shorter path (the copying can be done with\\?\ prefix to avoid limitation of path length)
  • then create the shortcut (without\\?\ prefix), but with the longer path target.
  • and copy all back (again with\\?\ prefix).

Alternatively you can consider using a Symbolic Link in stead of a Shortcut (Windows Vista and higher) which can be created with os.symlink() and this will work with \\?\ prefix for long path names. This is what I personally have done multiple times, as it is just simpler to implement. But you will have to ask the question if this "shortcut" or "symlink" is really needed, as once you have a "symlink" you do need to delete both source as symlink upon delete, else your file will remain.

Lastly you can do this the hard way: recreate code to create a shortcut file in the correct format. Here is some Microsoft Documentation, a search online will reveal multiple links with useful information.

Although I do not have experience with this, there seems to be a module which claims it can natively create .lnk files

Post a Comment for "Windows Path Too Long"