john pfeiffer
  • Home
  • Categories
  • Tags
  • Archives

symlink

import os
import ctypes

def symlink( source, link_name ):

    os_symlink = getattr(os, "symlink", None)
    if callable(os_symlink):
        os_symlink(source, link_name)
    else:

        csl = ctypes.windll.kernel32.CreateSymbolicLinkW
        csl.argtypes = (ctypes.c_wchar_p, ctypes.c_wchar_p, ctypes.c_uint32)
        csl.restype = ctypes.c_ubyte
        flags = 1 if os.path.isdir(source) else 0
        result = csl(link_name, source, flags)
        if result == 0:
            raise ctypes.WinError()
        return result


result = symlink( "c:\\etc\\test.txt", "c:\\etc\\test_link.txt" )       # must have cmd.exe running as Administrator
print result

  • « filter list compiled regular expression map function over list
  • decorator example ContentServiceUnexpectedExceptionDecoratorExample »

Published

Mar 29, 2013

Category

python

~54 words

Tags

  • python 180
  • symlink 2