Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.86/22: Рейтинг темы: голосов - 22, средняя оценка - 4.86
6 / 6 / 0
Регистрация: 08.04.2022
Сообщений: 52

Нужен исходник по созданию определенного количества папок

04.05.2023, 11:27. Показов 5688. Ответов 115

Студворк — интернет-сервис помощи студентам
Доброго времени суток, пользуюсь скриптами... VBS PoSH, CMD там сделать множество каталогов не такая уж проблема, подумал пару месяцев назад подучить VB6, хотел посмотреть смогу ли использовать его в администрировании... но увы информации мало, да и программы нашел по мимо ТС-а, которые могут как переименовывать, так и создавать множество папок. А вот по VB так и не нашел ничего, хотелось бы найти исходник или пример... Если нет ни у кого на этом форуме, то и искать уже, наверное, бесполезно.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
04.05.2023, 11:27
Ответы с готовыми решениями:

Подсчитать количество символов в названиях папок и добить нулями до определённого количества
Привет всем! Необходимо решить очень сложную задачу... Что имеем: Есть неограниченное количество папок, их названия и длину названий...

Нужен исходник для расчёта комплектации материалов или т.п. Исходник с расчётами, таблицами
Добрый день всем) Нужна помощь. Занимаюсь расчётами стоимость материалов и стоимость в оконной конторе. Создал для себе эксель...

Батник по созданию папок
Всем привет. Помогите написать бат, который создает папку в папке. Например: Папка 1\Папка 2\Папка 3\ Папка 4\... и т.д.

115
Испарился
 Аватар для HackerVlad
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
05.05.2023, 13:48
Студворк — интернет-сервис помощи студентам
Не существует LongPtr в VB6)))
0
1387 / 843 / 92
Регистрация: 08.02.2017
Сообщений: 3,593
Записей в блоге: 1
05.05.2023, 13:50
Цитата Сообщение от HackerVlad Посмотреть сообщение
LongPtr ну ты и выдумщик
просто творчески подхожу
0
Испарился
 Аватар для HackerVlad
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
05.05.2023, 14:02
Интересно, а функция SHCreateDirectory поддерживает уникод? Создать папку с китайщиной например попробовать... А то не понятно как-то на конце функции нет ни буквы A ни буквы W и фиг поймёшь поддерживает уникод или нет...

Добавлено через 1 минуту
А вот в CreateDirectory есть A и W там всё понятно

Добавлено через 3 минуты
Да, только что проверил, поддерживает уникод)))) Пришлось ещё проверять, а то было непонятно... Без буквы W на конце... Странная функция какая-то...

Visual Basic
1
2
3
4
5
6
7
8
9
10
Option Explicit
Private Declare Function SHCreateDirectory Lib "shell32" (ByVal hwnd As Long, ByVal pszPath As Long) As Long
 
Private Sub Command1_Click()
    Dim strPath As String
    
    strPath = "C:\Love " & ChrW(&H7231)
    
    SHCreateDirectory 0, StrPtr(strPath)
End Sub
Создаёт папку на диске C: с китайским иероглифом обозначающим любовь)
1
sleep
 Аватар для I can
4935 / 4609 / 841
Регистрация: 13.04.2015
Сообщений: 9,781
05.05.2023, 14:05
Цитата Сообщение от HackerVlad Посмотреть сообщение
CreateDirectory 0,734375 c, MkDir 0,703125 c
А эти тесты были на 10 тысяч папок??????
Как засрать диск в максимально короткое время?
1
1387 / 843 / 92
Регистрация: 08.02.2017
Сообщений: 3,593
Записей в блоге: 1
05.05.2023, 14:22
Цитата Сообщение от HackerVlad Посмотреть сообщение
Да, только что проверил, поддерживает уникод)))) Пришлось ещё проверять, а то было непонятно... Без буквы W на конце... Странная функция какая-то...
Видимо по этому и принимает указатель, а не "basic string"
0
Испарился
 Аватар для HackerVlad
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
05.05.2023, 14:25
Да и получается, что моя функция MakeDir не нужна, раз SHCreateDirectory создаёт много вложенных папок, плюс ещё и с уникодом работает. Зря писал получается свою функцию MakeDir основанную на MkDir тем более без уникода...

Добавлено через 1 минуту
Цитата Сообщение от testuser2 Посмотреть сообщение
принимает указатель, а не "basic string"
Да, в MSDN написано, цитирую:
[in] pszPath

Тип: PCWSTR

Указатель на строку Юникода
0
1387 / 843 / 92
Регистрация: 08.02.2017
Сообщений: 3,593
Записей в блоге: 1
05.05.2023, 14:29
HackerVlad, а можете проверить, какая скорость SHCreateDirectory в PB?
0
Испарился
 Аватар для HackerVlad
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
05.05.2023, 14:30
Цитата Сообщение от testuser2 Посмотреть сообщение
в PB
В PowerBasic? Там как раз LongPtr можно писать... Но я просто не хочу создавать 10 тысяч папок, честно...
0
1387 / 843 / 92
Регистрация: 08.02.2017
Сообщений: 3,593
Записей в блоге: 1
05.05.2023, 14:32
Цитата Сообщение от HackerVlad Посмотреть сообщение
Зря писал получается свою функцию MakeDir основанную на MkDir тем более без уникода...
Если честно, тоже только сегодня узна про все эти замечательные функции, ни чего до этого не писал, выходит не зря, не писал))
0
6 / 6 / 0
Регистрация: 08.04.2022
Сообщений: 52
05.05.2023, 15:36  [ТС]
Да действительно сложно особенно если с ЯП не работал и едва ли понимаю куда можно функции или нужно вставлять, я-то хотел, сделать кнопку, окно с указанием количества папок... и кнопку создать, ну вариант с EXCEL ближе всего к этому, а так нашел еще вариант.
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
Option Explicit
 
Private Declare Function MakeSureDirectoryPathExists Lib "imagehlp.dll" (ByVal lpPath As String) As Long
Private Sub Form_Load()
    'KPD-Team 2000
    'URL: http://www.allapi.net/
    'E-Mail: KPDTeam@Allapi.net
    'create the directory "c:\this\is\a\test\directory\", if it doesn't exist already
    'MakeSureDirectoryPathExists "c:\this\is\a\test\directory\"
    MakeSureDirectoryPathExists "c:\Этот\тест\создаёт\директории\по\указанному\пути\"
    'Me.Caption = "c:\this\is\a\test\directory\ - Создано"
    Me.Caption = "c:\Этот\тест\создаёт\директории\по\указанному\пути\"
End Sub
Вложения
Тип файла: rar CreatDirectory.rar (1.4 Кб, 16 просмотров)
1
Испарился
 Аватар для HackerVlad
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
05.05.2023, 15:47
Интересный пример конечно, посмотрел я официальную документацию этой функции https://learn.microsoft.com/ru... pathexists там ясно написано, что функция не поддерживает юникод.

Добавлено через 2 минуты
А так же ещё очень интересно и то, что в официальной документации написано DLL другая: Dbghelp.dll
Я решил проверить, и она тоже работает!
Visual Basic
1
Private Declare Function MakeSureDirectoryPathExists Lib "Dbghelp.dll" (ByVal lpPath As String) As Long
Видимо эта функция есть в двух разных DLL.

Добавлено через 1 минуту
А так же интересны комментарии в MSDN, цитирую:

Комментарии
Каждый указанный каталог создается, если он еще не существует. Если создаются только некоторые каталоги, функция вернет значение FALSE.

Эта функция не поддерживает строки Юникода. Чтобы указать путь Юникода, используйте функцию SHCreateDirectoryEx .

Все функции DbgHelp, такие как этот, являются однопоточными. Таким образом, вызовы из нескольких потоков в эту функцию, скорее всего, приведет к непредвиденному поведению или повреждению памяти. Чтобы избежать этого, необходимо синхронизировать все параллельные вызовы из нескольких потоков с этой функцией.
0
1387 / 843 / 92
Регистрация: 08.02.2017
Сообщений: 3,593
Записей в блоге: 1
05.05.2023, 15:47
Цитата Сообщение от HackerVlad Посмотреть сообщение
Видимо эта функция есть в двух разных DLL.
Возможно они лишь ретранслируют какую-то из вышеуказанных фукнций.
0
Испарился
 Аватар для HackerVlad
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
05.05.2023, 15:53
Ну эта функция и правда есть в этих двух разных DLL в imagehlp.dll и в Dbghelp.dll а вот как эти функции написаны это уже другой вопрос и ссылается ли одна DLL на другую, но какая разница... Всё равно эти функции старые и не уникодные.

Добавлено через 1 минуту
Подойдёт разве что для старых винд, Windows 2000 там например или Windows 98 может даже... Не знаю...
SHCreateDirectory гораздо лучше это точно, но она начиная от XP
0
6 / 6 / 0
Регистрация: 08.04.2022
Сообщений: 52
05.05.2023, 15:55  [ТС]
Цитата Сообщение от HackerVlad Посмотреть сообщение
Видимо эта функция есть в двух разных DLL.
Так и есть, у одной две версии 64 и 32... а у первой нужно менять расположение system 32 и sys wow. Если, конечно, правильно понял. кстати, в варианте с EXEL что скидывал выше там урок 1,2,3 и т.п. Но на имена могут быть вообще любые и на разных языках... Интересно то код можно перенести на VB6. Хотя на едва ли там все-таки часть работы на EXCEL - е.
0
Испарился
 Аватар для HackerVlad
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
05.05.2023, 15:55
Кстати эта функция есть даже в API вьювере
Миниатюры
Нужен исходник по созданию определенного количества папок  
0
Испарился
 Аватар для HackerVlad
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
05.05.2023, 16:06
Эти две DLL кстати почти одинаковые, и функции там похожие. Но я понял, что Dbghelp.dll новее и лучше и функций там чуть по больше.
Миниатюры
Нужен исходник по созданию определенного количества папок   Нужен исходник по созданию определенного количества папок  
0
Испарился
 Аватар для HackerVlad
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
05.05.2023, 16:08
Но этой функцией в любом случае лучше не пользоваться так как она не поддерживает уникод и ещё тем более всегда слеш на конце добавлять надо (символ "\"), а в SHCreateDirectory не надо
0
1387 / 843 / 92
Регистрация: 08.02.2017
Сообщений: 3,593
Записей в блоге: 1
05.05.2023, 16:18
Цитата Сообщение от Addmmin Посмотреть сообщение
Интересно то код можно перенести на VB6. Хотя на едва ли там все-таки часть работы на EXCEL - е.
Конечно есть различия. VBA думаю это очевидно, что это штука сделаная на том же ядре, что и VB (огрызок от VB). Только это ядро они продолжили развивать не слишком рьяно, но сейчас это VBA7, который есть под x64 (VB6 только 32битный) и есть поддержка юникода у форм. Даже выскажу такую конспирологическую догадку, что в застенках Майкров возможно существует и VB7, просто он кривоватый как VBA x64 и комерчески не выгодный и они его не кажут людям.
0
6 / 6 / 0
Регистрация: 08.04.2022
Сообщений: 52
05.05.2023, 16:25  [ТС]
Цитата Сообщение от testuser2 Посмотреть сообщение
не кажут людям.
Возможно, можете подсказать, каки куда подключать функции, а то часть примеров не могу разобрать, непонятно, где на форме должны быть если не на командной кнопке, а, то одни ошибки. на пример
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
Public Function MakeDir(ByVal strPath As String) As Boolean
    'creates a directory independent of whether the parent directory exists
    'Code by TheSmileyOne
    'Version 0.1
    'Date 2010-05-19
 
    'Known issues
    'No error handling for cases such as network drives, with restricted permissions to create folders.
    'No input validation
 
 
    On Error GoTo err_Handler
 
    'Check if rightmost char is a \
        If Right(strPath, 1) = "\" Then
            'Strip it
            strPath = Left(strPath, Len(strPath) - 1)
        End If
 
    'Check if each individual directory exists, and if not, create it
        Dim strSplitPath() As String
        ReDim strSplitPath(UBound(Split(strPath, "\")))
        strSplitPath = Split(strPath, "\")
        Dim intI As Integer
        Dim strCombined As String
 
        For intI = 0 To UBound(strSplitPath)
            If intI <> 0 Then strCombined = strCombined & "\"
 
            strCombined = strCombined & strSplitPath(intI)
            If Dir(strCombined, vbDirectory) = "" Then
                MkDir strCombined
            End If
        Next
 
     'Succes
         MakeDir = True
Exit Function
        MakeDir = False
        MsgBox "Error " & Err.Number & " occured." & vbNewLine & Err.Description
 
End Function
0
6 / 6 / 0
Регистрация: 08.04.2022
Сообщений: 52
05.05.2023, 16:39  [ТС]
То, что выше оказывается VBA уж извините, нашел случайно то что хотел сделать, ну почти если копировать из exsel правдо не знаю на каком это ЯП и можно ли как-то рас компилировать exe файлы.
Вложения
Тип файла: rar Создать папки.rar (6.4 Кб, 16 просмотров)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
05.05.2023, 16:39
Помогаю со студенческими работами здесь

Реализовать подсчет количества слов из определенного количества букв в строке
Как на языке си реализовать подсчет количества слов из, например, трех букв в строке?

Нужен исходник
Нужен исходник в Делфи 7, для подбора 5 значного кода в закрытую область (от 0 до 99999) в программе Вася Диагност.

Нужен исходник приложения
Разработать приложение, демонстрирующее подсчет и вывод суммы и произведения чисел, которые выбираются из списков. Добавить splash форму...

Нужен исходник компилятора
Может быть, у кого-нибудь есть самопальные исходники компилятора языка С? (Очень желательно) Ну или, на худой конец, угостит ссылкой...

Нужен исходник сапера
Мне нужен исходник сапера на Visual Basic .net. Весь Google периискал подходящего исходники не нашел. :cry: Буду благодарен тому хто...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&amp;d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru