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

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

04.05.2023, 11:27. Показов 5854. Ответов 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
Любитель
 Аватар для Тим70
1047 / 756 / 161
Регистрация: 27.01.2019
Сообщений: 1,522
12.05.2023, 06:58
Лучший ответ Сообщение было отмечено Addmmin как решение

Решение

Студворк — интернет-сервис помощи студентам
Полазил по форуму и подправил код
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Private Sub Command1_Click()
Dim n As Integer, Name1 As String, i As Integer
On Error Resume Next
n = Int(InputBox("Введите количество папок"))
Name1 = InputBox("Введить путь и основное имя папки (например с:\New_Dir")
    For i = 1 To n
        MkDir Name1 & i
       
      If FolderExists(Name1 & i) = False Then
        Print "Не удалось создать  " & Name1 & i
      Else
        Print "Создана  " & Name1 & i
      End If
    Next
    Exit Sub
If Err Then MsgBox "Что то пошло не так": Err.Clear
End Sub
 
Public Function FolderExists(ByVal strPathName As String) As Boolean
On Error Resume Next
FolderExists = GetAttr(strPathName) And vbDirectory
End Function
Теперь вроде все правильно работает.

Добавлено через 1 час 51 минуту
А вот так можно создать папки в подпапках
Кликните здесь для просмотра всего текста
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
Option Explicit
 
Private Sub Command1_Click()
Dim n As Integer, Name1 As String, i As Integer, d() As String, Ima As String
Cls
On Error Resume Next
n = Int(InputBox("Введите количество папок"))
'Name1 = InputBox("Введить путь и основное имя папки (например с:\New_Dir")
Name1 = Text1.Text
d = Split(Name1, "\")
' Создаем подпапки
    For i = 0 To UBound(d) - 1
     Ima = Ima & d(i) & "\"
     MkDir Ima
    Next
 
    For i = 1 To n
        MkDir Name1 & i
       
      If FolderExists(Name1 & i) = False Then
        Print "Не удалось создать  " & Name1 & i
      Else
        Print "Создана  " & Name1 & i
      End If
    Next
    Exit Sub
If Err Then MsgBox "Что то пошло не так": Err.Clear
End Sub
 
Public Function FolderExists(ByVal strPathName As String) As Boolean
On Error Resume Next
FolderExists = GetAttr(strPathName) And vbDirectory
End Function
 
Private Sub Form_Load()
Text1.Text = "c:\W\Q\A" 'В текстовом поле можно менять путь и название перед нажатием кнопки
End Sub
2
6 / 6 / 0
Регистрация: 08.04.2022
Сообщений: 52
12.05.2023, 12:20  [ТС]
Тим70, немного переделал, но вышло не совсем так как хотел, хотел сделать что бы сообщение выходило во фрейм и показывало количество папок, да и так показывает, но в Lable и полный путь хотя в какойто момент получилось, но случайно закрыл приложение не сохранив и повторить уже не смог, а в целом же идеально даже очень жал мне не хватит знаний соединить оба примера (((( с вариантом от The trickа и HackerVladа, ексельевскому же формату тому, что скидывал, хотя в данном случае это и не требуется - уступает лишь тем, что нельзя ввести разные имена, но это я так к слову...
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
Option Explicit
 
Private Sub Command1_Click()
Dim n As Integer, Name1 As String, i As Integer, d() As String, Ima As String
Cls
On Error Resume Next
n = Int(InputBox("Введите количество папок"))
'Name1 = InputBox("Введите путь и основное имя папки (например C:\New_Dir")
Name1 = Text1.Text
d = Split(Name1, "\")
' Создаем подпапки
    For i = 0 To UBound(d) - 1
     Ima = Ima & d(i) & "\"
     MkDir Ima
    Next
 
    For i = 1 To n
        MkDir Name1 & i
       
      If FolderExists(Name1 & i) = False Then
        Print "Не удалось создать  " & Name1 & i
      Else
        Label2 = "Созданна папок " & Name1 & i
      End If
    Next
    Exit Sub
If Err Then MsgBox "Что-то пошло не так": Err.Clear
End Sub
 
Public Function FolderExists(ByVal strPathName As String) As Boolean
On Error Resume Next
FolderExists = GetAttr(strPathName) And vbDirectory
End Function
Миниатюры
Нужен исходник по созданию определенного количества папок   Нужен исходник по созданию определенного количества папок  
0
6 / 6 / 0
Регистрация: 08.04.2022
Сообщений: 52
12.05.2023, 12:27  [ТС]
Вспомнил нужно было просто удалить "Name1 &" а так же после первой папки нужна ставить "" иначе будет создавать папки в корне
Миниатюры
Нужен исходник по созданию определенного количества папок  
0
6 / 6 / 0
Регистрация: 08.04.2022
Сообщений: 52
12.05.2023, 12:37  [ТС]
корне хотел исправить ошибку, а сделал еще хуже)), пора отдохнуть ...
0
Испарился
 Аватар для HackerVlad
1742 / 638 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
12.05.2023, 12:55
Addmmin, я рад, что у вас всё получилось)))
1
Любитель
 Аватар для Тим70
1047 / 756 / 161
Регистрация: 27.01.2019
Сообщений: 1,522
12.05.2023, 13:08
Addmmin, Хорошо.Сразу ни у кого не получается.Немног покапаетесь и разберетесь.
0
Любитель
 Аватар для Тим70
1047 / 756 / 161
Регистрация: 27.01.2019
Сообщений: 1,522
12.05.2023, 14:09
Addmmin, Код кнопки лучше заменить на
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
Private Sub Command1_Click()
Dim n As Integer, Name1 As String, i As Integer, d() As String, Ima As String
Cls
On Error Resume Next
n = Int(InputBox("Введите количество папок"))
'Name1 = InputBox("Введить путь и основное имя папки (например с:\New_Dir")
Name1 = Text1.Text
d = Split(Name1, "\")
' Создаем подпапки
    For i = 0 To UBound(d) - 1
     Ima = Ima & d(i) & "\"
     MkDir Ima
    Next
Dim St As String
    For i = 1 To n
    St = Right(String(4, "0") & i, 4) 'Добавляем перед номером нули до 4-х знаков
       MkDir Name1 & St
       
      If FolderExists(Name1 & St) = False Then
        Print "Не удалось создать  " & Name1 & St
      Else
        Print "Создана  " & Name1 & St
      End If
    Next
    Exit Sub
If Err Then MsgBox "Что то пошло не так": Err.Clear
End Sub
Так папки будут идти по порядку.
Миниатюры
Нужен исходник по созданию определенного количества папок  
0
6 / 6 / 0
Регистрация: 08.04.2022
Сообщений: 52
12.05.2023, 15:51  [ТС]
Видимо что-то не так делаю.
Изображения
 
0
Испарился
 Аватар для HackerVlad
1742 / 638 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
12.05.2023, 15:57
Цитата Сообщение от Addmmin Посмотреть сообщение
Видимо что-то не так делаю.
Ищите, чтобы эта функция была.
0
6 / 6 / 0
Регистрация: 08.04.2022
Сообщений: 52
12.05.2023, 17:46  [ТС]
Цитата Сообщение от HackerVlad Посмотреть сообщение
Ищите, чтобы эта функция была.
Уже пробовал, ошибку вызывает FolderExists смотрел возможные ошибки, названия, ссылки, пути. Подключаемых библиотек вроде нет, скорее всего что-то не дописал или где-то что-то лишнее, а найти никак не получается... еще проверю кодировку если не в этом дело, то мне эту проблему уже не решить. Единственное что вышло удаление функции "FolderExists" код заработал, но сообщения пропали естественно.
0
6 / 6 / 0
Регистрация: 08.04.2022
Сообщений: 52
12.05.2023, 18:01  [ТС]
Вот
Миниатюры
Нужен исходник по созданию определенного количества папок   Нужен исходник по созданию определенного количества папок  
0
Любитель
 Аватар для Тим70
1047 / 756 / 161
Регистрация: 27.01.2019
Сообщений: 1,522
12.05.2023, 18:05
Addmmin, Лучше попробуйте этот код
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
Option Explicit
Private Declare Function SHCreateDirectoryEx Lib "shell32" Alias "SHCreateDirectoryExA" (ByVal hwnd As Long, ByVal pszPath As String, ByVal psa As Any) As Long
 
Private Sub Command1_Click()
Dim ErrorCode As Integer, message As String, DirPath As String
Dim i As Integer, n As Integer, St As String, m As Integer
List1.Clear
n = Int(InputBox("Введите колличество папок"))
 
    For i = 1 To n
      
        St = Right(String(4, "0") & i, 4) 'Добавляем перед номером нули до 4-х знаков
        
         DirPath = Text1.Text & St
         ErrorCode = SHCreateDirectoryEx(Me.hwnd, DirPath, ByVal 0&)
         Select Case ErrorCode
         Case 0
             message = "Папка успешно создана": m = m + 1 'подсчитываем созданные папки
         Case 80, 183
             message = "Уже есть такая папка"
         Case 161
             message = "Плохое имя папки"
         Case 206
             message = "Очень длинное имя папки"
         Case Else
             message = "Непредвиденная ошибка создания папки"
         End Select
      List1.AddItem (DirPath & "  " & message)
     Next i
     Label1.Caption = "Создано: " & m & " папок"
End Sub
 
Private Sub Form_Load()
Text1.Text = "c:\W\Q\A"
End Sub
Он короче и более функционален.Если папка уже существует,то он просто выдаст сообщение,а не перезапишет папку заново и соответственно все что содержит эта папка не будет утеряно.
1
428 / 333 / 61
Регистрация: 29.06.2019
Сообщений: 493
12.05.2023, 18:06
Цитата Сообщение от Addmmin Посмотреть сообщение
Visual Basic
1
2
3
4
Public Function FolderExists(ByVal strPathName As String) As Boolean
On Error Resume Next
FolderExists = GetAttr(strPathName) And vbDirectory
End Function
Addmmin, Вы не её потеряли?
0
6 / 6 / 0
Регистрация: 08.04.2022
Сообщений: 52
12.05.2023, 18:21  [ТС]
Спасибо, первый вариант, который получился устраивает полностью, но если честно именно вариант со списком пытался сделать изначально, но то, что я делал даже близко не похоже ...

Добавлено через 1 минуту
Цитата Сообщение от SergioJek Посмотреть сообщение
Addmmin, Вы не её потеряли?
Возможно, но я плохо помню VB6 функции и когда занимался языком в школе доставляли хлопоты...
0
Испарился
 Аватар для HackerVlad
1742 / 638 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
12.05.2023, 20:46
Вот лучше такую функцию использовать вместо FolderExists:

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
' Проверка существования каталога
Public Function IsDir(FileName As String) As Boolean
    On Error Resume Next
    Dim DirAttr As Long
    
    If FileName <> vbNullString Then
        If Right(FileName, 1) = "\" Then
            FileName = Mid(FileName, 1, Len(FileName) - 1) ' Убрать на конце косую черту, если есть
        End If
        
        If Dir(FileName, vbDirectory + 7) <> vbNullString Then
            DirAttr = GetAttr(FileName)
            
            If (DirAttr And vbDirectory) <> 0 Then ' Если бит vbDirectory установлен, тогда...
                IsDir = True
            End If
        Else
            IsDir = False
        End If
    End If
    
    Err.Clear
End Function
0
6 / 6 / 0
Регистрация: 08.04.2022
Сообщений: 52
18.05.2023, 11:49  [ТС]
Нашел еще интересный пример, а если точнее скинули мне коллеги из организации этажом по выше... Рассматривал и вариант привязки с Акселем правда до конца не понимаю, как это работает, и более того как можно использовать в данном случае, тем более что прописывать путь внутри кода как-то не очень удобно, но сохраню все водном месте постепенно разберусь как ни будь позже.

Код формы
Visual Basic
1
2
3
4
5
6
7
Private Sub Form_Load()
Set ws = DBEngine.CreateWorkspace("MyWS", "admin", "")
Set db = ws.OpenDatabase("D:\путь\БД.mdb или .accdb")
Set rs = db.OpenRecordset("Sale", dbOpenDynaset)
MaxCount = 0
loadRecord
End Sub
Код кнопки
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
Private Sub cmdExportExcel_Click()
Dim excelapp As Excel.Application
Dim book As Excel.Workbook
Set excelapp = New Excel.Application
excelapp.Workbooks.Add
Set book = excelapp.ActiveWorkbook
Do Until rs.EOF
Counter = Counter + 1
book.ActiveSheet.Range("a" & Counter).FormulaR1C1 = rs!tip
book.ActiveSheet.Range("b" & Counter).FormulaR1C1 = rs!Name
book.ActiveSheet.Range("c" & Counter).FormulaR1C1 = rs!Scale
book.ActiveSheet.Range("d" & Counter).FormulaR1C1 = rs!Address
book.ActiveSheet.Range("e" & Counter).FormulaR1C1 = rs!prise
book.ActiveSheet.Range("f" & Counter).FormulaR1C1 = rs!datep
book.ActiveSheet.Range("g" & Counter).FormulaR1C1 = rs!buyname
book.ActiveSheet.Range("h" & Counter).FormulaR1C1 = rs!garantyear
book.ActiveSheet.Range("i" & Counter).FormulaR1C1 = rs!Notes
rs.MoveNext
Loop
excelapp.Visible = True
Set excelapp = Nothing
loadRecord
 
End Sub
В текст
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
Private Sub cmdExportTXT_Click()
Dim Af As Scripting.FileSystemObject
Dim txt As Scripting.TextStream
Dim Counter As Long
Set fs = New Scripting.FileSystemObject
Set txt = fs.OpenTextFile("F:\Универ\Базы данных\Visual Basic 6.0\Учет продаж компьютеров\sale2000.txt", ForWriting, True)
Do Until rs.EOF
txt.Write rs!tip & vbTab
txt.Write rs!Name & vbTab
txt.Write rs!Scale & vbTab
txt.Write rs!Address & vbTab
txt.Write rs!prise & vbTab
txt.Write rs!datep & vbTab
txt.Write rs!buyname & vbTab
txt.Write rs!garantyear & vbTab
txt.Write rs!Notes & vbCrLf
Counter = Counter + 1
rs.MoveNext
Loop
txt.Close
Set txt = Nothing
Set fs = Nothing
loadRecord
MsgBox "Вывод данных в текстовый файл закончен.", vbInformation, "Экспорт"
End Sub
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
18.05.2023, 11:49
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
116
Ответ Создать тему
Новые блоги и статьи
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2. Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru