Создание структуры каталогов с юникодовыми именами - VB
Формулировка задачи:
Привет !
Подскажите, пожалуйста, как будет правильно для юникод-версии функции?
Решение задачи: «Создание структуры каталогов с юникодовыми именами»
textual
Листинг программы
Option Explicit Private Declare Function CreateDirectory Lib "kernel32" Alias "CreateDirectoryW" (ByVal lpPathName As Long, lpSecurityAttributes As Any) As Long Private Declare Function PathIsDirectory Lib "Shlwapi" Alias "PathIsDirectoryW" (ByVal pszPath As Long) As Long Private Declare Function PathFindNextComponent Lib "Shlwapi" Alias "PathFindNextComponentW" (ByVal pszPath As Long) As Long Private Sub Form_Load() Dim lr As Long Stop lr = CreateFolderStruct("D:\2\3\4\file", True) End Sub Function CreateFolderStruct(Path As String, Optional ByVal LastComponentIsFile As Boolean = False) As Long ' ÑîçäГ*ГҐГІ ñòðóêòóðó ГЄГ*ГІГ*ëîãîâ (îòГ*îñèòåëüГ*ûå ГЇГіГІГЁ Г*ГҐ ïîääåðæèâГ*ГѕГІГ±Гї) ' LastComponentIsFile - ÿâëÿåòñÿ ëè ïîñëåäГ*ГЁГ© êîìïîГ*ГҐГ*ГІ ГіГЄГ*Г§Г*Г*Г*îãî ГЇГіГІГЁ ГґГ*éëîì ? Dim lPs As Long, lPp As Long, l As Long, sz As Long, status As Boolean lPs = StrPtr(Path): lPp = lPs: sz = Len(Path): status = True Do lPp = PathFindNextComponent(lPp) l = (lPp - lPs) \ 2 If lPp = 0 Or (LastComponentIsFile And l = sz) Then Exit Do If l < sz Then Mid(Path, l, 1) = vbNullChar If PathIsDirectory(lPs) = 0 Then If CreateDirectory(lPs, ByVal 0&) = 0 Then status = False End If If l < sz Then Mid(Path, l, 1) = "\" Loop While lPp And status CreateFolderStruct = status End Function
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д