Мне нужно выполнить ряд действий, инициированных передачей строки, причем ход действий зависит от того, является ли строка файлом, папкой или веб-адресом.
FYI - для файла я копирую файл в хранилище, для папки я создаю ярлык .lnk и копирую его в хранилище, а для веб-адреса я делаю ярлык .url и копирую его в хранилище.
Я разработал решение, но оно недостаточно надежное; Я получаю случайную ошибку от неверного определения строки. Я использовал метод подсчета точек в строке и применения правила:
If Dots = 1 Then... it's a file.
If Dots < 1 Then... it's a folder.
If Dots > 1 Then... it's a website.
Затем я улучшил это, используя несколько функций, которые я нашел в Интернете:
Dots = Len(TargetPath) - Len(Replace(TargetPath, ".", "")) ' Crude check for IsURL (by counting Dots)
If CheckFileExists(TargetPath) = True Then Dots = 1 ' Better check for IsFile
If CheckFolderExists(TargetPath) = True Then Dots = 0 ' Better check for IsFolder
Проблема в том, что у меня все еще проблемы с 2 обстоятельствами:
Когда имена файлов содержат дополнительные точки, например, \Report.01.doc
Когда строка представляет собой файл или папку в удаленном расположении в интрасети (я думаю, это может быть неверное определение в качестве веб-адреса).
Любые указатели в правильном направлении будут высоко оценены.
Том Н