Создание папОК

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
neic
Жираф
Жираф
 
Сообщения: 492
Зарегистрирован: 13.02.2005 (Вс) 23:44
Откуда: Сланцы

Создание папОК

Сообщение neic » 30.04.2005 (Сб) 23:16

Вот я пользуюсь для создания папок вот таким способом:

MkDir "C:\Windows\1"

А как сделать чтобы создавались сразуже все папки? Например мне нужно создать десять папок, но MkDir не сможет сразуже создать 10папок, ну вот у меня и вопрос каким способом можно создать 10 папок СРАЗУЖЕ?

FaKk2
El rebelde gurú
El rebelde gurú
Аватара пользователя
 
Сообщения: 2031
Зарегистрирован: 09.03.2003 (Вс) 22:10
Откуда: Los Angeles

Сообщение FaKk2 » 30.04.2005 (Сб) 23:28

neic
"СРАЗУЖЕ" имеешь ввиду одномоментно?

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

_Мика_
Гуру
Гуру
 
Сообщения: 1459
Зарегистрирован: 24.10.2003 (Пт) 15:05
Откуда: г. Москва, м.Речной вокзал

Сообщение _Мика_ » 01.05.2005 (Вс) 0:10

FAKK2 писал(а):neic
"СРАЗУЖЕ" имеешь ввиду одномоментно?

Никак. Разве что несколькоми потоками, но и тогда на диск они запишуться по одному.


Ну почему же :?

Код: Выделить всё
Private Declare Function CreateDirectory Lib "kernel32" Alias "CreateDirectoryA" (ByVal lpPathName As String, lpSecurityAttributes As SECURITY_ATTRIBUTES) As Long
:wink:
-Папа, а правда, что форумы делают людей дибилами?
-гы гы гы, сынок, лол!

FaKk2
El rebelde gurú
El rebelde gurú
Аватара пользователя
 
Сообщения: 2031
Зарегистрирован: 09.03.2003 (Вс) 22:10
Откуда: Los Angeles

Сообщение FaKk2 » 01.05.2005 (Вс) 0:13

_Мика_
Знаешь, написать обертку к MkDir я тоже могу.
Но создавать то буду по одному...
Для получения ответа надо продемонстрировать качества, позволяющие стать компетентным — внимательность, вдумчивость, наблюдательность, желание активно участвовать в выработке решения.

kirrun
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 514
Зарегистрирован: 06.04.2005 (Ср) 15:41
Откуда: Питер

Сообщение kirrun » 01.05.2005 (Вс) 0:16

Я так понимаю человеку надо создать сразу весь путь...

То есть например есть диск c:\ а на нем больше ничего... А ему нужен путь c:\hernya\bred\otstoi\
И приходится делать по одной папке
MkDir c:\hernya
MkDir c:\hernya\bred...
и тд...
Вот он и хочет все сразу...

Скорее всего проще будет просто написать функцию, которой пихаешь полный путь, она его по слешам разбирает и создает...
"Единственный безопасный компьютер - это тот, который выключен из электросети, закрыт в сейфе, который зарыт 20 футов под землей в засекреченной местности. И то я не уверен относительно его безопасности."
(Деннис Хьюджес, ФБР)

FaKk2
El rebelde gurú
El rebelde gurú
Аватара пользователя
 
Сообщения: 2031
Зарегистрирован: 09.03.2003 (Вс) 22:10
Откуда: Los Angeles

Сообщение FaKk2 » 01.05.2005 (Вс) 0:18

neic
Сходи по ссылке в моей подписи, прочитай и задай вопрос заново
Для получения ответа надо продемонстрировать качества, позволяющие стать компетентным — внимательность, вдумчивость, наблюдательность, желание активно участвовать в выработке решения.

kirrun
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 514
Зарегистрирован: 06.04.2005 (Ср) 15:41
Откуда: Питер

Сообщение kirrun » 01.05.2005 (Вс) 0:27

FAKK2

Да расслабься ты! Хорошая тихая ночь... лично я не прочь поиграть в вопрос-ответ и попытаться угадать что ему надо... Нет, я серьезно!

ЗЫ Хотя, я вроде уже угадал...
"Единственный безопасный компьютер - это тот, который выключен из электросети, закрыт в сейфе, который зарыт 20 футов под землей в засекреченной местности. И то я не уверен относительно его безопасности."
(Деннис Хьюджес, ФБР)

FaKk2
El rebelde gurú
El rebelde gurú
Аватара пользователя
 
Сообщения: 2031
Зарегистрирован: 09.03.2003 (Вс) 22:10
Откуда: Los Angeles

Сообщение FaKk2 » 01.05.2005 (Вс) 0:31

kirrun
А у меня рабочий день :)
Для получения ответа надо продемонстрировать качества, позволяющие стать компетентным — внимательность, вдумчивость, наблюдательность, желание активно участвовать в выработке решения.

kirrun
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 514
Зарегистрирован: 06.04.2005 (Ср) 15:41
Откуда: Питер

Сообщение kirrun » 01.05.2005 (Вс) 0:32

FAKK2

А я ща спать, наверно, пойду... Завтра аффтора увидим и узнаем че хотел... Ибо сегодня праздник, я ему даже эту функцию напишу... =)

ЗЫ. Христос Воскресе!
"Единственный безопасный компьютер - это тот, который выключен из электросети, закрыт в сейфе, который зарыт 20 футов под землей в засекреченной местности. И то я не уверен относительно его безопасности."
(Деннис Хьюджес, ФБР)

FaKk2
El rebelde gurú
El rebelde gurú
Аватара пользователя
 
Сообщения: 2031
Зарегистрирован: 09.03.2003 (Вс) 22:10
Откуда: Los Angeles

Сообщение FaKk2 » 01.05.2005 (Вс) 0:35

kirrun
Воистину воскрес!
Для получения ответа надо продемонстрировать качества, позволяющие стать компетентным — внимательность, вдумчивость, наблюдательность, желание активно участвовать в выработке решения.

Sasha_karasov
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 436
Зарегистрирован: 03.03.2005 (Чт) 19:38
Откуда: ua.dp

Сообщение Sasha_karasov » 01.05.2005 (Вс) 3:42

Код: Выделить всё
Public Sub MDIR(Dir As String)
If Mid(Dir, Len(Dir), 1) <> "\" Then
Dir = Dir + "\"
For i = 4 To Len(Dir)
If Mid(Dir, i, 1) = "\" Then MkDir Mid(Dir, 1, i - 1)
Next i
Else
For i = 4 To Len(Dir)
If Mid(Dir, i, 1) = "\" Then MkDir Mid(Dir, 1, i - 1)
Next i
End If
End Sub

Private Sub Form_Load()
MDIR "c:\1\2\3"
End Sub
Удачи!
С уважением, Алексадр.

neic
Жираф
Жираф
 
Сообщения: 492
Зарегистрирован: 13.02.2005 (Вс) 23:44
Откуда: Сланцы

Сообщение neic » 01.05.2005 (Вс) 8:45

kirrun писал(а):Я так понимаю человеку надо создать сразу весь путь...

То есть например есть диск c:\ а на нем больше ничего... А ему нужен путь c:\hernya\bred\otstoi\
И приходится делать по одной папке
MkDir c:\hernya
MkDir c:\hernya\bred...
и тд...
Вот он и хочет все сразу...

Скорее всего проще будет просто написать функцию, которой пихаешь полный путь, она его по слешам разбирает и создает...

Точно!
Sasha_karasov угу всё сработало, спасибо!

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 01.05.2005 (Вс) 10:50

Private Declare Function MakeSureDirectoryPathExists Lib "imagehlp.dll" (ByVal DirPath As String) As Long
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

A.A.Z.
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3035
Зарегистрирован: 30.06.2003 (Пн) 13:38

Сообщение A.A.Z. » 01.05.2005 (Вс) 13:31

2 GSerg: не мешай, видишь, люди велосипед изобретают ;)

_Мика_
Гуру
Гуру
 
Сообщения: 1459
Зарегистрирован: 24.10.2003 (Пт) 15:05
Откуда: г. Москва, м.Речной вокзал

Сообщение _Мика_ » 01.05.2005 (Вс) 13:35

А чем это не подошло???
Private Declare Function CreateDirectory Lib "kernel32" Alias "CreateDirectoryA" (ByVal lpPathName As String, lpSecurityAttributes As SECURITY_ATTRIBUTES) As Long
:shock: :shock:
-Папа, а правда, что форумы делают людей дибилами?
-гы гы гы, сынок, лол!

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 01.05.2005 (Вс) 14:15

Тем, что может создать только последнюю папку, при условии, что все предыдущие существуют.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

kirrun
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 514
Зарегистрирован: 06.04.2005 (Ср) 15:41
Откуда: Питер

Сообщение kirrun » 01.05.2005 (Вс) 21:11

Позвольте предложить немного более компактный вариант этой же функции

Код: Выделить всё
Public Sub MDir(Dir As String)
If Right(Dir, 1) <> "\" Then Dir = Dir + "\"
For i = 4 To Len(Dir)
If Mid(Dir, i, 1) = "\" Then MkDir Left(Dir, i)
Next i
End Sub


Зачем использовать Mid, когда мона юзать Right или Left... Получается короче и читабилньее... Да и два раза одно и тоже мона было не писать...
Но это так... Написано нормально... Просто всегда можно что-то охаить и исправить =)
"Единственный безопасный компьютер - это тот, который выключен из электросети, закрыт в сейфе, который зарыт 20 футов под землей в засекреченной местности. И то я не уверен относительно его безопасности."
(Деннис Хьюджес, ФБР)

_Мика_
Гуру
Гуру
 
Сообщения: 1459
Зарегистрирован: 24.10.2003 (Пт) 15:05
Откуда: г. Москва, м.Речной вокзал

Сообщение _Мика_ » 01.05.2005 (Вс) 23:52

GSerg писал(а):Тем, что может создать только последнюю папку, при условии, что все предыдущие существуют.


А....ну да, сорюсь...тогдав вот ето!
Код: Выделить всё
Private Declare Function SHCreateDirectoryEx Lib "shell32" Alias "SHCreateDirectoryExA" (ByVal hwnd As Long, ByVal pszPath As String, ByVal psa As Any) As Long

:D
-Папа, а правда, что форумы делают людей дибилами?
-гы гы гы, сынок, лол!

|kerish|
Постоялец
Постоялец
 
Сообщения: 831
Зарегистрирован: 22.10.2004 (Пт) 0:31

Сообщение |kerish| » 01.05.2005 (Вс) 23:57

Так теперь давайте создадим свою файловую систему...

Sasha_karasov
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 436
Зарегистрирован: 03.03.2005 (Чт) 19:38
Откуда: ua.dp

Сообщение Sasha_karasov » 02.05.2005 (Пн) 2:00

Можно и так, просто я ночью писал, голова не варит.
Давайте писать свою систему ф. Только как? :D
Удачи!
С уважением, Алексадр.

_Мика_
Гуру
Гуру
 
Сообщения: 1459
Зарегистрирован: 24.10.2003 (Пт) 15:05
Откуда: г. Москва, м.Речной вокзал

Сообщение _Мика_ » 02.05.2005 (Пн) 9:55

Ну как минимум нужна операционная система :D
-Папа, а правда, что форумы делают людей дибилами?
-гы гы гы, сынок, лол!

kirrun
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 514
Зарегистрирован: 06.04.2005 (Ср) 15:41
Откуда: Питер

Сообщение kirrun » 02.05.2005 (Пн) 13:16

Отлично! Чур я пишу фирменный блокнот и рисую указатели мыши... Чтоб такое придумать... Белая стрелочка в винде, черная в лине... О! Будет не стрелка, а мышь =) Да, если надо - могу панель управления написать =)

УРА!!! НОВАЯ ОПЕРАЦИОННАЯ СИСТЕМА "VBStreetsows ХУ.." =)
"Единственный безопасный компьютер - это тот, который выключен из электросети, закрыт в сейфе, который зарыт 20 футов под землей в засекреченной местности. И то я не уверен относительно его безопасности."
(Деннис Хьюджес, ФБР)

_Мика_
Гуру
Гуру
 
Сообщения: 1459
Зарегистрирован: 24.10.2003 (Пт) 15:05
Откуда: г. Москва, м.Речной вокзал

Сообщение _Мика_ » 02.05.2005 (Пн) 13:21

Ок..а я займусь оформлением! :lol:
-Папа, а правда, что форумы делают людей дибилами?
-гы гы гы, сынок, лол!


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 143

    TopList