2013-06-18 6 views
6

Próbuję sprawdzić ścieżkę dowiązanie symboliczne hardlink lub punkt połączenia w systemie Windows Jak mogę to zrobić? nie działa. To zawsze wraca False utworzyć dowiązania przez następną metodę:Symlinks on windows

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

używałem wiersz polecenia, ponieważ os.link i os.symlink dostępne tylko w systemach Unix

Może istnieją jakieś narzędzia wiersza poleceń dla to? Dzięki

Odpowiedz

2

docstring Zjednoczone:

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

W Windows linki są kończąc .lnk, plików i folderów, więc można utworzyć funkcję dodanie tego rozszerzenia i sprawdzanie z os.path.isfile() i os.path.isfolder(), takich jak:

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

Myślę, że to nie jest poprawne. Przynajmniej dlatego, że potrzebuję w linku do folderu również. Również rozszerzenie nie gwarantuje, że ścieżka jest dowiązaniem symbolicznym, czy nie. – Eugene

+0

Zaktualizowałem asnwer, dodając możliwość folderu –

+0

Dziękuję, ale to nie gwarantuje, że ścieżka jest dowiązaniem symbolicznym. Chciałbym sprawdzić wszystkie ścieżki. – Eugene

0

Działa to w języku Python 3.3 w systemie Windows 8.1 przy użyciu systemu plików NTFS.

islink() zwraca wartość True dla dowiązania symbolicznego (utworzone za pomocą mklink) i False dla normalnego pliku.

0

Można spróbować

dir /al <myfile> 

pokazuje ścieżkę docelową w brakets:

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

UWAGA: dla dziwnych windows-os-linki, jak wyżej, to nie działa bez „* "

Szukałem tego samego problemu, ale nie znalazłem już niczego ...