Выбор папки из ярлыка - 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
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д