Функция PathRelativePathTo
Declare Function PathRelativePathTo Lib "shlwapi.dll" Alias "PathRelativePathToA" (ByVal pszPath As String, ByVal pszFrom As String, ByVal dwAttrFrom As Long, ByVal pszTo As String, ByVal dwAttrTo As Long) As Long
PathRelativePathTo создает относительный путь от одного файла или папки к другому. Эта функция берет пару путей и генерирует относительный путь. Пути не должны быть полностью-квалифицированы, но обязательно должны иметь общий префикс. Например, пусть pszFrom, будет "c:\FolderA\FolderB\FolderC", а pszTo будет "c:\FolderA\FolderD\FolderE". PathRelativePathTo возвратит относительный путь от pszFrom до pszTo как: " ..\ ..\FolderD\FolderE ". Вы получите тот же самый результат, если Вы устанавливаете pszFrom в "\FolderA\FolderB\FolderC" и pszTo к "\FolderA\FolderD\FolderE". С другой стороны, "c:\FolderA\FolderB" и " a:\FolderA\FolderD не используют общий префикс, и функция будет терпеть неудачу. Обратите внимание, что " \\ " не рассматривается префиксом и игнорируется. Если Вы устанавливаете pszFrom в " \\ FolderA\FolderB ", и pszTo к " \\ FolderC\FolderD ", функция будет терпеть неудачу
Возвращаемое значение
В случае успеха функция возвращает True, в противном случае возвращается False
Параметры
- pszPath
- Строка, содержащая относительный путь. Выделите ей буфер достаточной длины
- pszFrom
- Строка, содержащая путь, который определяет начало относительного пути
- dwAttrFrom
- Атрибут файла pszFrom. Если это значение содержит FILE_ATTRIBUTE_DIRECTORY, то pszFrom считается папкой, иначе pszFrom является файлом
- pszTo
- Строк, содержащая путь, который определяет оконечную точку относительного пути
- dwAttrTo
- Атрибут файла pszFrom. Если это значение содержит FILE_ATTRIBUTE_DIRECTORY, то pszTo считается папкой, иначе pszTo является файлом
Константы
Const FILE_ATTRIBUTE_DIRECTORY = &H10
Пример
' Поместите на форме три TextBox,
' в которых вы будет вводить пути
Dim relpath As String
' Создаем буфер
relpath = Space(260)
PathRelativePathTo relpath, txtFrom.Text, _
FILE_ATTRIBUTE_DIRECTORY, _
txtTo.Text, FILE_ATTRIBUTE_DIRECTORY
txtRelative.Text = Left(relpath, InStr(relpath, Chr(0)) - 1)
Категория
Shlwapi