2013-06-18 11 views
6

Sto cercando di verificare il percorso symlink hardlink o punto di congiunzione su windows Come posso farlo? non funziona. Si ritorna sempre False ho Crea i collegamenti entro il prossimo metodo:Symlink su windows

mklink /d linkPath targetDir 
mklink /h linkPath targetDir  
mklink /j linkPath targetDir 

Ho usato da riga di comando, perché os.link e os.symlink disponibile solo su sistemi Unix

Forse ci sono strumenti da riga di comando per vero? Grazie

risposta

2

Il Uniti docstring:

Test for symbolic link. 
On WindowsNT/95 and OS/2 always returns false 

In Windows i collegamenti stanno finendo con .lnk, per file e cartelle, così si potrebbe creare una funzione aggiunta di questa estensione e controllo con os.path.isfile() e os.path.isfolder(), come:

mylink = lambda path: os.path.isfile(path + '.lnk') or os.path.isdir(path + '.lnk') 
+0

penso che non è corretto. Almeno perché ho bisogno anche di un link alla cartella. Anche l'estensione non garantisce quale percorso è symlink o no – Eugene

+0

Ho aggiornato il asnwer, aggiungendo la possibilità della cartella –

+0

Grazie ma non mi garantisce che il percorso sia symlink. Vorrei controllare tutti i percorsi. – Eugene

0

Questo funziona su Python 3.3 su Windows 8.1 utilizzando un file system NTFS.

islink() restituisce True per un collegamento simbolico (come creato con mklink) e False per un file normale.

0

Si può provare

dir /al <myfile> 

vi mostra il percorso di destinazione in parentesi:

C:\>dir /al "Documents and Settings*" 
[...] 
14.07.2009 06:08 <VERBINDUNG> Documents and Settings [C:\Users] 

NOTA: per strani Windows-OS-link come sopra, non funziona senza il "* "

ero alla ricerca per lo stesso problema, ma non ho trovato nulla ormai ...