.NET 1.0 दिनों में वापस मैंने एमएस विंडोज़ पर शॉर्टकट के लक्ष्य को वापस करने के लिए एक विधि लिखी। यह विंडोज़ स्क्रिप्ट के लिए एक इंटरॉप का उपयोग कर होस्टिंग ऑब्जेक्ट मॉडल और जानवर COM इंटरफेस के माध्यम से मजबूर के माध्यम से ऐसा किया:क्या COM का उपयोग किये बिना सी # में प्रोग्रामिंग रूप से विंडोज़ फ़ाइल सिस्टम शॉर्टकट का पालन करने का कोई तरीका है?
private FileInfo GetFileFromShortcut(FileInfo shortcut)
{
FileInfo targetFile = null;
try
{
IWshRuntimeLibrary.WshShell wShell = new IWshRuntimeLibrary.WshShellClass();
IWshRuntimeLibrary.WshShortcut wShortcut = (IWshRuntimeLibrary.WshShortcut)wShell.CreateShortcut(shortcut.FullName);
// if the file wasn't a shortcut then the TargetPath comes back empty
string targetName = wShortcut.TargetPath;
if (targetName.Length > 0)
{
targetFile = new FileInfo(targetName);
}
}
catch (Exception)
{ // will return a null targetFile if anything goes wrong
}
return targetFile;
}
यह अभी भी कीड़े मुझे, और मैं और अधिक सुरुचिपूर्ण कुछ के साथ इस को बदलने के लिए देख रहा था, लेकिन केवल तभी जब प्रतिस्थापन वास्तव में कम से कम काम करता है। मुझे अभी भी एक शॉर्टकट के लक्ष्य को खोजने का मूल सी # तरीका नहीं मिल रहा है। क्या कोई है, या यह अभी भी इस तरह की चीज करने का सबसे अच्छा तरीका है?
शानदार सवाल। इस बारे में सोचा नहीं है कि COM इंटरॉप – Sung
के बिना यह काम कैसे प्राप्त किया जाए, दुर्भाग्य से यह प्राप्त करने के लिए मैं अप्रबंधित कोड के माध्यम से खोल का उपयोग नहीं कर सका। – RobS