Страница: 1 |
Вопрос: Регистр символов в пути на диске | Добавлено: 28.10.07 21:08 |
Автор вопроса: ![]() |
Можно ли как-то на VB6 с помощью API узнать путь на диске с учетом регистра символов?
Например: вводим "g:\мои документы" а программа выводит "G:\Мои документы" |
Ответы | Всего ответов: 9 |
Номер ответа: 1 Автор ответа: ![]() ![]() ![]() ![]() Вопросов: 87 Ответов: 2795 |
Web-сайт: Профиль | Цитата | #1 | Добавлено: 28.10.07 21:11 |
закачал вот эту интересную штуку
http://www.planet-source-code.com/vb/scripts/ShowCode.asp?lngWId=1&txtCodeId=69481 А она почему-то русские символы требует в нужном регистре |
Номер ответа: 2 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() Администратор ICQ: 278109632 Вопросов: 42 Ответов: 3949 |
Web-сайт: Профиль | Цитата | #2 | Добавлено: 28.10.07 22:15 |
а смысл какой? все равно системе пофиг какой у тебя там регистр....
ну да ладно ![]() Const MAX_PATH = 260
Private Type FILETIME dwLowDateTime As Long dwHighDateTime As Long End Type Private Type WIN32_FIND_DATA dwFileAttributes As Long ftCreationTime As FILETIME ftLastAccessTime As FILETIME ftLastWriteTime As FILETIME nFileSizeHigh As Long nFileSizeLow As Long dwReserved0 As Long dwReserved1 As Long cFileName As String * MAX_PATH cAlternate As String * 14 End Type Private Declare Function FindFirstFile Lib "kernel32" Alias "FindFirstFileA" (ByVal lpFileName As String, lpFindFileData As WIN32_FIND_DATA) As Long Private Declare Function FindClose Lib "kernel32" (ByVal hFindFile As Long) As Long Private Function CreatePath(ByVal sPath As String) As String Dim File As WIN32_FIND_DATA Dim Arr() As String If Right$(sPath, 1) = "\" Then sPath = Left$(sPath, Len(sPath) - 1) Arr = Split(sPath, "\" ![]() sResult = UCase$(Arr(0)) & "\" For i = 1 To UBound(Arr) ret = FindFirstFile(sResult & Arr(i), File) FindClose ret sResult = sResult & Left$(File.cFileName, InStr(1, File.cFileName, Chr$(0)) - 1) & "\" Next sResult = Left$(sResult, Len(sResult) - 1) CreatePath = sResult End Function Private Sub Form_Load() ret = CreatePath("c:\webservers\hoMe" ![]() End Sub |
Номер ответа: 3 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Offline Client Вопросов: 236 Ответов: 8362 |
Профиль | Цитата | #3 | Добавлено: 29.10.07 00:33 |
Дык вы тему не сечёте, вдруг придут времена, когда вб6, и проги скомпиленые на нём, на чистом линуксе будут запускаться.. во.. а продвинутые разработчики уже сейчас в своих прогах это предусматривают, заботясь о регистре букв в пути.. |
Номер ответа: 4 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Вопросов: 130 Ответов: 6602 |
Профиль | Цитата | #4 | Добавлено: 29.10.07 01:09 |
ага, прописывают C:\Windows в путях. |
Номер ответа: 5 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() Администратор ICQ: 278109632 Вопросов: 42 Ответов: 3949 |
Web-сайт: Профиль | Цитата | #5 | Добавлено: 29.10.07 09:49 |
ну вот вам код ![]() ![]() |
Номер ответа: 6 Автор ответа: ![]() ![]() ![]() ![]() Вопросов: 87 Ответов: 2795 |
Web-сайт: Профиль | Цитата | #6 | Добавлено: 30.10.07 00:41 |
Вы, это... как бы.. Ответ номер 1 прочитайте.
Это контрол для обзора директорий, использующий системное SHBrowseForFolder. Я не знаю чё это за глюки, но именно имена папок на русском нужно передавать в правильном регистре... |
Номер ответа: 7 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() Администратор ICQ: 278109632 Вопросов: 42 Ответов: 3949 |
Web-сайт: Профиль | Цитата | #7 | Добавлено: 30.10.07 08:30 |
ну как я написал работает хоть? |
Номер ответа: 8 Автор ответа: ![]() ![]() ![]() ![]() Вопросов: 87 Ответов: 2795 |
Web-сайт: Профиль | Цитата | #8 | Добавлено: 30.10.07 19:26 |
если бы еще кое-кто переменные объявлял)) было бы замечательно. А так работает вроде. спс |
Номер ответа: 9 Автор ответа: ![]() ![]() ![]() ![]() Вопросов: 87 Ответов: 2795 |
Web-сайт: Профиль | Цитата | #9 | Добавлено: 30.10.07 19:44 |
Даже вот так лучше немножко
Option Explicit
Const MAX_PATH = 260 Const INVALID_HANDLE_VALUE = -1 Private Type FILETIME dwLowDateTime As Long dwHighDateTime As Long End Type Private Type WIN32_FIND_DATA dwFileAttributes As Long ftCreationTime As FILETIME ftLastAccessTime As FILETIME ftLastWriteTime As FILETIME nFileSizeHigh As Long nFileSizeLow As Long dwReserved0 As Long dwReserved1 As Long cFileName As String * MAX_PATH cAlternate As String * 14 End Type Private Declare Function FindFirstFile Lib "kernel32" Alias "FindFirstFileA" (ByVal lpFileName As String, lpFindFileData As WIN32_FIND_DATA) As Long Private Declare Function FindClose Lib "kernel32" (ByVal hFindFile As Long) As Long Private Function CreatePath(ByVal sPath As String) As String Dim File As WIN32_FIND_DATA Dim Arr() As String Dim sResult As String Dim i As Long, ret As Long If Right$(sPath, 1) = "\" Then sPath = Left$(sPath, Len(sPath) - 1) Arr = Split(sPath, "\" ![]() sResult = UCase$(Arr(0)) & "\" For i = 1 To UBound(Arr) ret = FindFirstFile(sResult & Arr(i), File) If ret = INVALID_HANDLE_VALUE Then CreatePath = "ERR_" Exit Function End If FindClose ret sResult = sResult & Left$(File.cFileName, InStr(1, File.cFileName, Chr$(0)) - 1) & "\" Next sResult = Left$(sResult, Len(sResult) - 1) CreatePath = sResult End Function Private Sub Form_Load() Dim ret As String ret = CreatePath("g:\мои докУментЫ\my Music" ![]() Debug.Print ret End Sub |
Страница: 1 |
|