| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > VB6 > Как определить существует каталог или нет |
| Автор: korob2001 27.9.2004, 12:43 | ||||
| Всем привет! Visual Basic изучаю совсем недавно, просто получилось так, что записался на курсы, по Java и VB ( отдельные курсы ). Заказал книги на русском языке, дабы не мучаться с нидерландским. Книги по Java пока не получил, а вот по VB уже есть. Вот и начал самостоятельно изучать VB, так как нидерландский язык знаю нормально, но не до такой степени что бы учить на нём новый для меня язык программирования, да и курсы эти один раз в неделю. По моему опыту этого недостаточно для хорошего знания языка программирования. Меня интересует не только корочка, которую я получу по окончании курсов, но и сами знания ( в первую очередь ). Хожу на курсы, а дома учу самостоятельно то, что проходили на занятии, да и вперед уже маленько забежал ;). На курсах мы не дошли ещё до переменных, а самостоятельно уже изучаю работу с файлами. Когда получу книги по Java, буду и с этим языком поступать также. Ну ладно, это уже лирика. Перейду к теме. Проблема в следующем: есть некая процедура, которая сначала создаёт каталог \Simple на диске C:\, затем в него складывает все необходимые файлы. После первого запуска программы каталог успешно создаётся, но вот при последующих запусках выдаётся ошибка компиляции, точно не помню какая, я пишу не из дома. Но она указывает на строку, которая создаёт каталог \Simple, то есть на эту:
Я конечно же понимаю почему - потому что данный каталог уже существует. В общем мне необходима условная конструкция If, которая должна проверять каталог на несуществование, другими словами - если каталог C:\Simple не существует, то его нужно создать, в противном случае переходим к следующей строке после строки End If. На Perl я бы сделал такую проверку так:
Переведу приведённый код на русский для тех, кто не знаком с Perl. Если не существует ни файла, ни каталога с именем Simple на диске С:\ , то необходимо создать данный каталог. Если я правильно понимаю, то мне необходима подобная проверка перед созданием каталога, на Visual Basic. Пробовал искать в книгах, но ничего не нашёл. Подскажите: какое условие должно быть в конструкции If, что бы узнать, есть такой каталог или нет? Заранее благодарен, Денис |
| Автор: boevik 27.9.2004, 12:49 | ||
На VB проверка на существования файла или каталога можно осуществить функцией Dir.
|
| Автор: cardinal 27.9.2004, 12:54 | ||||
то есть в If напиши
Не забудь подключить scrrun.dll к проекту. |
| Автор: korob2001 27.9.2004, 13:03 |
| Большое спасибо. Сейчас отпринтую и пойду домой пробовать. |
| Автор: korob2001 28.9.2004, 23:53 | ||||
| To cardinal Не могу найти scrrun.dll To boevik Такой код вроде подошёл, но затем возникла проблема. Вобщем, тренировки ради написал такую прогу. GUI: 5 текстовых полей, для ввода 5 имён txtName(1), txtName(2) ..... txtName(5) 5 текстовых полей, для ввода 5 фамилий txtFamily(1), txtFamily(2) ... txtFamily(5) 1 List box - lstMem для ввода данных из файла. 2 кнопки "Save to file" - cmdSave "Exit" - cmdExit Начальные параметры Все текстовые поля пустые. Код
Я конечно понимаю что вторая проверка в данном случае не уместна. Но я ведь только начал. Что знаю, то и поробую. Вобщем я пытаюсь, проверить существует каталог или нет для того, что бы не выводилась ошибка Path not found, при попытке открыть для чтения не существующий файл. В моём случае если существует каталог, то значит существует и файл. Можно конечно сделать проверку на существование файла, но я не знаю как. Или может я не допонимаю сути этой строки:
Вот как я её понимаю: Функция Len получает имя каталога из функции Dir, в то время функции Dir передаём путь к каталогу. В конечном итоге функция Len возвращает кол-во сиволов из которых состоит имя каталога. Если длина имени каталога не равна 0, значит каталог существует. Может, я не совсем верно мыслю? Подправьте. Если не трудно, подскажите как проверить файл на существование. Так как если убрать это условие, то всё прекрастно работает. Извините за ламерские вопросы, просто Visual Basic учу только вторую неделю. Заранее благодарен за помощь и понимание. Денис |
| Автор: -Mikle- 29.9.2004, 08:01 | ||||||||||||
В данном случае она проверяет существование не файла, а каталога, но самого файла может и не быть... может в таком случае она у тебя не работает? т.е. когда каталог есть, а файла нет? в случае когда нужно проверить еще и существование файла, то ф-ии надо передать еще и его:
я всегда так проверяю файлы
<Ctrl + T> - это список доступных компонентов Тебе нужно в меню Project -> References... найти Microsoft Scripting Runtime и отметить его. и еще, на данный момент это не важно, но все же позволь:
Заходи, не стесняйся! Удачи! PS: Кстати, я наоборот, только начал изучать Perl |
| Автор: cardinal 29.9.2004, 08:36 | ||
Если бы ты знал, что я несколько лет назад спрашивал (тут на форуме недавно увидел), то вообще ухахочишься... |
| Автор: korob2001 29.9.2004, 13:10 | ||||
Все понял, а это куда важнее чем тупо копировать чужие труды. БОЛЬШОЕ СПАСИБО.
Удачи тебе, я не пожалел что освол его. Может когда-нибудь тебе понадобится и моя помощь, с удовольствием помогу.
Я с этим знаком, сейчас смотрю на свои первые вопросы по Perl и улыбаюсь. Еще раз всем спасибо. |