| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > удалить папку |
| Автор: h2o 14.11.2005, 16:50 |
| У меня встала такая проблема: Я из папки запускаю фаил, который потирает всё в этой папке, а потом и эту папку тоже. точнее он должен это делать! а не делает. Поэтому я нашёл код, который при запуске этого файла, копирует его во временную папку и перезапускает! Всё вроде-бы круто, да вот только рабочим каталогом остаётся та папка из которой я изначально запускал файлик!!! и поэтому никаким способом не удалить эту папку пока не закроешь всё что вызвано программой! Я где-то видел код который позволяет изменить рабочий каталог программы, тоесть я запускаю файл, копирую его куда-нибудь, и указываю ему рабочий каталог тот, куда я его скопировал и перезапускаю програмно, и получается что я могу сделать с первой папкой всё что захочу!!! Но вот никак ни где не могу этого кода найти! Или есть другой способ удалить папку, из которой я запустил свой фаил? |
| Автор: Snowy 14.11.2005, 17:07 |
| chdir |
| Автор: AKN 14.11.2005, 17:15 |
| не страдай - запусти дубль во временной папке, пусти ей sendmessage с путем папки которую удалить нужно, и закрой программу в нужной папке. Прога во временной папке ждет сообщения, потом еще 100мсек чтобы та копия смогла закрыться и удаляешь каталог, указанный в сообщении. Или я неправильно понял? |
| Автор: h2o 15.11.2005, 09:17 | ||
| AKN правильно, почти. но тот фаил что во временной папке, его рабочим каталогом считается та папка, которую хочу удалить, из которой изначально я запустил первый фаил! тоесть получается есть папка ххх, в которой есть фаил ххх.ехе, я его запускаю оттуда, он копирует себя во временную папку и перезапускает оттуда! уже этим файлом во временной папке я могу удалить все файлы в папке ххх, но вот саму папку ххх - нет! даже если я из файла во временной папке создам батник, он тоже не сможет удалить папку ххх! а всё это потому что и у первого файла ххх.ехе в папке ххх и у файла ххх.ехе во временной папке и у батника, созданного в любой папке - ОДИН РАБОЧИЙ КАТАЛОГ - ххх!!! так что вот в чём вся фишка! я незнаю, может есть способ скоировать фаил во временную папку, и сказать ему, вот твоя рабочая папка, та куда я тебя копирую, а не та из которой я тебя копирую!!! и перезапустить. если что то вот код из drkb.chm от исходники.ру и винград.ру, который копирует фаил во временную папку и перезапускает его!
ну это так, навсякий случай. ну и как быть? |
| Автор: Alexeis 15.11.2005, 10:19 |
| Рабочую папку можно установить функцией SetCurrentDir |
| Автор: h2o 15.11.2005, 12:04 |
| alexeis1 тоесть в такой последовательности: 1. создаём папку 2. копируем туда фаил 3. запускаем его 4. SetCurrentDir и всё? или как-то по друому надо? |
| Автор: Alexeis 15.11.2005, 13:40 |
| вроде так. SetCurrentDir установит рабочей папкой ту которая будет указана в качестве параметра |
| Автор: h2o 16.11.2005, 08:58 |
| точно! все работает! как все просто оказалось! |