Страница: 1 |
Страница: 1 |
Вопрос: GetShortPath
Добавлено: 03.09.04 22:55
Автор вопроса: AgentFire | ICQ: 192496851
Здравствуйте!
Кто знает, подскажите, где можно достать такую ф-цию, ну типа "GetShortPath", которая возвращает путь к файлу, но как в DOS'е, то есть длина папки или файла(без расширения) не больше восьми?
Ответы
Всего ответов: 7
Номер ответа: 1
Автор ответа:
shareman
Вопросов: 11
Ответов: 37
Профиль | | #1
Добавлено: 03.09.04 23:26
Declare Function SHGetShortPathName Lib "shell32" Alias "#92" _
 ByVal szPath As String) As Long
Номер ответа: 2
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #2
Добавлено: 04.09.04 11:33
Только путь обязательно должен существовать... Иначе не сработает...
Номер ответа: 3
Автор ответа:
Comanche
Вопросов: 87
Ответов: 459
Профиль | | #3
Добавлено: 04.09.04 13:14
В принципе, исчерпывающий ответ уже дан, но есть ещё одна API-функция (коль пошла такая пьянка):
Public Declare Function GetShortPathName Lib "kernel32" Alias "GetShortPathNameA" _
 ByVal lpszLongPath As String, _
ByVal lpszShortPath As String, _
ByVal cchBuffer As Long) As Long
Пример использования:
Public Function fGetShortName(ByVal stLongPath As String) As String
 im stShortPath As String
 im lngBuffer As Long, lngRet As Long
lngBuffer = 260& ' << константа MAX_PATH, на самом деле
stShortPath = String$(lngBuffer, Chr$(0))
lngRet = GetShortPathName(stLongPath, stShortPath, lngBuffer)
fGetShortName = Left$(stShortPath, lngRet)
End Function
Номер ответа: 4
Автор ответа:
AgentFire
ICQ: 192496851
Вопросов: 75
Ответов: 3178
Профиль | | #4
Добавлено: 04.09.04 20:36
Однако! Ну все равно, большое спасибо!
Номер ответа: 5
Автор ответа:
AgentFire
ICQ: 192496851
Вопросов: 75
Ответов: 3178
Профиль | | #5
Добавлено: 08.09.04 18:29
Блин, чо-то ни одна не пашет...
Номер ответа: 6
Автор ответа:
Comanche
Вопросов: 87
Ответов: 459
Профиль | | #6
Добавлено: 08.09.04 18:57
А поконкретнее?
Номер ответа: 7
Автор ответа:
AgentFire
ICQ: 192496851
Вопросов: 75
Ответов: 3178
Профиль | | #7
Добавлено: 08.09.04 21:34
Comanche, я понял, вчем у меня глюк, теперь все работает. :~)
Но вот SHGetShortPathName что-то ни под твой пример(fGetShortName), ни под ни одну из моих попыток... ну ладно будем пользоваться fGetShortName :~)