2013-06-18 11 views
6

मैं जांचने की कोशिश कर रहा हूं कि पथ सिम्लिंक हार्डलिंक या विंडोज पर जंक्शन बिंदु मैं इसे कैसे कर सकता हूं? काम नहीं करते हैं। यह हमेशा False मैं अगले विधि से सिमलिंक बनाने रिटर्न:विंडोज़ पर सिम्लिंक

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

मैं कमांड लाइन का उपयोग किया है क्योंकि os.link और os.symlink उपलब्ध केवल यूनिक्स सिस्टम पर

हो सकता है कि वहाँ के लिए किसी भी कमांड लाइन उपकरण हैं यह? धन्यवाद

उत्तर

2

docstring कहता है:

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

विंडोज लिंक,, .lnk साथ समाप्त कर रहे हैं फ़ाइलों और फ़ोल्डरों के लिए तो आप एक समारोह इस एक्सटेंशन जोड़ने और os.path.isfile() और os.path.isfolder(), जैसे के साथ जाँच बना सकते में:

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

मुझे लगता है कि यह सही नहीं है। कम से कम क्योंकि मुझे फ़ोल्डर के लिंक में भी आवश्यकता है। एक्सटेंशन भी गारंटी नहीं देता है कि कौन सा पथ सिमलिंक है या नहीं – Eugene

+0

मैंने एस्वर को अपडेट किया है, फ़ोल्डर की संभावना –

+0

जोड़ना धन्यवाद, लेकिन यह मुझे गारंटी नहीं देता है कि पथ सिमलिंक है। मैं सभी पथों को देखना चाहता हूं। – Eugene

0

यह एनटीएफएस फाइल सिस्टम का उपयोग कर विंडोज 8.1 पर पायथन 3.3 पर काम करता है।

islink() एक सिम्लिंक (जैसा कि mklink के साथ बनाया गया है) के लिए सच है और सामान्य फ़ाइल के लिए गलत है।

0

आप कोशिश कर सकते हैं

dir /al <myfile> 

आप brakets में लक्ष्य पथ दिखाता है:

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

नोट: ऊपर की तरह अजीब विंडोज ओएस-लिंक के लिए, इसके बिना काम नहीं करता है "* "

मैं एक ही मुद्दे की खोज कर रहा था, लेकिन अब तक कुछ भी नहीं मिला है ...

संबंधित मुद्दे