Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > Удалить файл


Автор: IgorDV 16.4.2008, 15:20
Как сказать программе чтоб она удалила собственный exe? наподобие того что делают инсталяторы (Uninstall.exe). 
Да простит меня модератор, задам еще один вопрос в эту тему.
Данную проблемму вроде можно решить так, в командной строе прописать:
DEL /s /q C:\programm
он удалит всю папку, по моему даже если файлы заняты другим приложением, вопрос:
Как выполнить данную команду?

Автор: Wizard_Memfis 16.4.2008, 16:20
Попробуй так:
Код

Process batch = new Process(); 
batch.StartInfo.FileName = "cmd.exe"; 
batch.StartInfo.WorkingDirectory = @"C:\";
batch.StartInfo.Arguments = @"DEL /s /q C:\programm"; 
batch.Start();     
batch.WaitForExit(); 

Сам не пробовал smile 

Автор: IgorDV 17.4.2008, 10:58
Цитата(Wizard_Memfis @ 16.4.2008,  16:20)
Попробуй так:
Код

Process batch = new Process(); 
batch.StartInfo.FileName = "cmd.exe"; 
batch.StartInfo.WorkingDirectory = @"C:\";
batch.StartInfo.Arguments = @"DEL /s /q C:\programm"; 
batch.Start();     
batch.WaitForExit(); 

Сам не пробовал smile

Я так уже пробовал, не получается :(

Автор: mr.DUDA 17.4.2008, 12:56
Батник нужно запускать после завершения работы EXE, а не во время.

Автор: IgorDV 17.4.2008, 15:20
Цитата(mr.DUDA @ 17.4.2008,  12:56)
Батник нужно запускать после завершения работы EXE, а не во время.

Это как? "Батник" это BAT-file? Если да, то какой, нет то что тогда?

Автор: Dennnis 17.4.2008, 15:45
Нельзя удалить экзешник программы во время ее работы т. е. самя себя программа удалить не может.

Автор: jonie 17.4.2008, 22:33
ну если очень хотеть, то можно себя удалить и не закрываясь... но не думаю что это очень просто - да и вмешивание в системные очереди это не есть хорошо.
 а так да, стандартно: еще одной программой удаляется.

Автор: Voyager 18.4.2008, 00:03
Запускаешь bat-файл перед закрытием программы (в скрытом режиме например), и после закрытия он ее удаляет. Файл примерно такой:
Код

CD C:\AppDir
:LOOP
ERASE app.exe
If EXIST app.exe GOTO LOOP
ERASE delete.bat


Автор: IgorDV 21.4.2008, 10:26
Цитата(Voyager @ 18.4.2008,  00:03)
Запускаешь bat-файл перед закрытием программы (в скрытом режиме например), и после закрытия он ее удаляет. Файл примерно такой:
Код

CD C:\AppDir
:LOOP
ERASE app.exe
If EXIST app.exe GOTO LOOP
ERASE delete.bat

Спасибо! Это то что нужно smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)