Выбор папки из ярлыка - Visual Basic .NET

Узнай цену своей работы

Формулировка задачи:

Добрый день! Возникла необходимость выбирать расшаренную папку

в сетевом расположении

. Обычно пользователь пользуется быстрым переходом к этим папкам через ярлыки на рабочем столе/в избранном/etc. Класс FolderBrowserDialog эти ярлыки соответственно не видит(выбор компьютера и ее расшаренной папки из ветки "Сеть" не предлагать - компьютеров очень много). Идеальный вариант - класс OpenFileDialog, но он работает только с файлами, а мне необходимо выбрать папку(задать переменной путь к этой папке). Может кто подскажет/поделится примером своего класса типа FolderBrowserDialog или какие-либо трюки с имеющимися классами?

Решение задачи: «Выбор папки из ярлыка»

textual
Листинг программы
Imports System.IO 
 
Public Module ShortcutHelper 
    Public Function IsShortcut(strPath As String) As Boolean 
        If Not File.Exists(strPath) Then 
            Return False 
        End If 
 
        Dim directory As String = Path.GetDirectoryName(strPath) 
        Dim strFile As String = Path.GetFileName(strPath) 
 
        Dim shell As Shell32.Shell = New Shell32.Shell() 
        Dim folder As Shell32.Folder = shell.NameSpace(directory) 
        Dim folderItem As Shell32.FolderItem = folder.ParseName(strFile) 
 
        If folderItem IsNot Nothing Then 
            Return folderItem.IsLink 
        End If 
 
        Return False 
    End Function 
 
    Public Function ResolveShortcut(strPath As String) As String 
        If IsShortcut(strPath) Then 
            Dim directory As String = Path.GetDirectoryName(strPath) 
            Dim strFile As String = Path.GetFileName(strPath) 
 
            Dim shell As Shell32.Shell = New Shell32.Shell() 
            Dim folder As Shell32.Folder = shell.NameSpace(directory) 
            Dim folderItem As Shell32.FolderItem = folder.ParseName(strFile) 
 
            Dim link As Shell32.ShellLinkObject = folderItem.GetLink 
 
            Return link.Path 
        End If 
 
        Return String.Empty 
    End Function 
End Module

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 3.75 из 5
Похожие ответы