On Sat, Apr 27, 2013 at 2:53 PM, <fo...@yahoo.com> wrote: > --- On Friday, April 26, 2013 9:53 PM, eryksun <eryk...@gmail.com> wrote: >> Your arguments for symlink() are string literals. How about this? >> >> LOAD_DIR = "/opt/data/music/load" >> >> def link(media): >> src = os.path.abspath(media) >> dst = os.path.join(LOAD_DIR, os.path.basename(media)) >> print "Adding %s to %s..." % (src, LOAD_DIR) >> os.symlink(src, dst) > > IIRC, os.symlink is not present in Python on Windows, right? (I'm on vacation > now so I can't check this). But aren't soft links and shortcuts linux and > windows > terms for the same thing?
Windows shortcuts (.lnk) are roughly equivalent to XDG .desktop files. Python 3.2+ supports os.link() for files on NT. It also supports os.symlink() on NT 6+ (Vista and later). Creating a symbolic link will fail if the process lacks the required privilege. Background: Win32 CreateHardLink was added in NT 5 (XP). Win32 CreateSymbolicLink was added in NT 6 (Vista; Windows 7 is NT 6.1), which also added "mklink" to the cmd shell. Creating symlinks requires SeCreateSymbolicLinkPrivilege. The default security settings enable this for administrators only. NT also has directory junctions (NTFS reparse points), which work transparently even if you're connected remotely. In contrast symlinks are resolved on the client, which means symlinks can work with UNC network paths (e.g. mklink /d mylink \\server\path). Maybe the stricter security for symlinks was added because they work across the network. _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor