Пара вопросов

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Charles
Новичок
Новичок
 
Сообщения: 26
Зарегистрирован: 21.08.2003 (Чт) 13:37
Откуда: Братск

Пара вопросов

Сообщение Charles » 11.07.2005 (Пн) 12:55

1. Как проверить существует ли директория?
Len(Dir(MyPath)) - возвращает 0 если в директории нет файлов.
Я проверяю через MkDir - но это как-то грубо и не подходит для сетевых путей...

2. Как заюзать pkzip через VB - с Shell'ом у меня не получается?..

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

Сообщение GSerg » 11.07.2005 (Пн) 13:12

1. RTFM. vbDirectory.
2. Shell'ом получается. Почему не получается у тебя?
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Re: Пара вопросов

Сообщение Andrey Fedorov » 11.07.2005 (Пн) 14:24

Charles писал(а):1. Как проверить существует ли директория?
Len(Dir(MyPath)) - возвращает 0 если в директории нет файлов.
Я проверяю через MkDir - но это как-то грубо и не подходит для сетевых путей...


Код: Выделить всё
Private Function FolderExists(sFolder As String) As Boolean
    On Error Resume Next
    FolderExists = ((GetAttr(sFolder) And vbDirectory) = vbDirectory)
End Function


Charles писал(а):2. Как заюзать pkzip через VB - с Shell'ом у меня не получается?..


Ищи примеры с использованием CreateProcess.
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 11.07.2005 (Пн) 14:26

Можно и проще. В каждой папке, кроме корневой, есть элементы-файлы "." и "..". И в каждой папке, включая корневую, есть элементы-файлы типа "nul", "prn", "con" и т.п. (устройства). Можешь проверять их существование.
Lasciate ogni speranza, voi ch'entrate.

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 11.07.2005 (Пн) 14:39

alibek писал(а):Можно и проще. В каждой папке, кроме корневой, есть элементы-файлы "." и "..". И в каждой папке, включая корневую, есть элементы-файлы типа "nul", "prn", "con" и т.п. (устройства). Можешь проверять их существование.


Проверять как? Проще все одно не выйдет. Dir использовать нельзя т.к прав на листинг может и не быть.

P.S Если же забыть про дюже старые операционки (с IE менее чем 4-ой версии), то можно использовать API-шную функцию PathIsDirectory.
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

Arcanoid
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 162
Зарегистрирован: 01.01.2005 (Сб) 15:44

Сообщение Arcanoid » 11.07.2005 (Пн) 21:19

Есть такая функция: SearchPath() называется. Я правда её не пробовал... :roll: Может оная конечно вааще из другой оперы... :?:
Invalid user or password...

Kovu
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 924
Зарегистрирован: 29.04.2005 (Пт) 17:38

Сообщение Kovu » 12.07.2005 (Вт) 8:09

Если тебе нужно проверить наличие директории и если её нет сохдать то лучше использовать API MakeSureDirectoryPathExists, которая есть во всех Windows.
Тогда необходимость всякой проверки наличия директорий отпадает :D
Если всё делать своими ручками, они скоро отвалятся !

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

Сообщение GSerg » 12.07.2005 (Вт) 8:21

Ужасный совет.

А MakeSureDirectoryPathExists есть начиная с 2000. А до этого она требует DbgHelp.dll.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Kovu
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 924
Зарегистрирован: 29.04.2005 (Пт) 17:38

Сообщение Kovu » 12.07.2005 (Вт) 8:30

GSerg писал(а):Ужасный совет.

А MakeSureDirectoryPathExists есть начиная с 2000. А до этого она требует DbgHelp.dll.

Не угадал GSerg:
Requires Windows NT 3.1 or later; Requires Windows 95 or later
Declare Function MakeSureDirectoryPathExists Lib "imagehlp.dll" (ByVal lpPath As String) As Long

В каком месте ты увидел DbgHelp.dll и "есть с 2000" :?: :?: :?:
Если всё делать своими ручками, они скоро отвалятся !

Arcanoid
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 162
Зарегистрирован: 01.01.2005 (Сб) 15:44

Сообщение Arcanoid » 12.07.2005 (Вт) 8:30

GSerg писал(а):А MakeSureDirectoryPathExists есть начиная с 2000. А до этого она требует DbgHelp.dll.

:D Ладно хоть не Microsoft Word!
Invalid user or password...

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

Сообщение GSerg » 12.07.2005 (Вт) 8:35

MakeSureDirectoryPathExists

Requirements
Client: Included in Windows XP and Windows 2000 Professional.
Server: Included in Windows Server 2003 and Windows 2000 Server.
Redistributable: Requires DbgHelp.dll on Windows NT 4.0 and Windows Me/98/95.

Platform SDK Release: February 2003
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Kovu
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 924
Зарегистрирован: 29.04.2005 (Пт) 17:38

Сообщение Kovu » 12.07.2005 (Вт) 12:22

тем не менее я взял это из апи-гайда.там библиотека imagehelp.dll
Так что не надо ляля :P :P :P
Если всё делать своими ручками, они скоро отвалятся !

Charles
Новичок
Новичок
 
Сообщения: 26
Зарегистрирован: 21.08.2003 (Чт) 13:37
Откуда: Братск

Сообщение Charles » 12.07.2005 (Вт) 14:35

За директории сэнкс - завтра на работе проверю...
Зип тожа через шелл работает - у меня названия каталогов паковки русские были - вот и глючело


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

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

Сейчас этот форум просматривают: Yandex-бот и гости: 76

    TopList  
cron