Создание папки MB

MapInfo, MapBasic
Ответить
Dartix
Участник
Сообщения: 78
Зарегистрирован: 05 апр 2014, 17:13
Репутация: 5

Создание папки MB

Сообщение Dartix »

Добрый день!
Как через MapBasic можно создать/удалить папку в указанном месте?
MI user
Участник
Сообщения: 65
Зарегистрирован: 14 янв 2013, 17:08
Репутация: -1238093703
Откуда: *рг

Re: Создание папки MB

Сообщение MI user »

Лично мне метод не нравится, но он работает:

1) В начале программы импортируем функцию Windows API:

Код: Выделить всё

Declare Sub Sleep Lib "kernel32" Alias "Sleep" (ByVal dwMilliseconds As Integer)
2) Папку создаём с помощью вызова команды:

Код: Выделить всё

Run Program "cmd /q /c md """ + WorkDir + """"
3) Так как папка создаётся асинхронно - нужно подождать некоторое время, пока она станет доступна в программе MapBasic:

Код: Выделить всё

Call Sleep(1000)
Dartix
Участник
Сообщения: 78
Зарегистрирован: 05 апр 2014, 17:13
Репутация: 5

Re: Создание папки MB

Сообщение Dartix »

Спасибо!
gamm
Гуру
Сообщения: 4170
Зарегистрирован: 15 окт 2010, 08:33
Репутация: 1107
Ваше звание: программист
Откуда: Казань

Re: Создание папки MB

Сообщение gamm »

а вызов точно асинхронный? обычно есть управление ждать/не ждать, но в Мапвасике не нашел ...
MI user
Участник
Сообщения: 65
Зарегистрирован: 14 янв 2013, 17:08
Репутация: -1238093703
Откуда: *рг

Re: Создание папки MB

Сообщение MI user »

gamm писал(а): 24 авг 2022, 18:02а вызов точно асинхронный
Из MapBasic вызывается стандартная команда Windows на создание папки - "md". Следовательно, в программе на MapBasic мы не сможем узнать результат выполнения команды создано/не создано. Поэтому просто тупо ждём 1 секунду.
Ответить

Вернуться в «MapInfo»

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

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