Форум: "Начинающим";
Текущий архив: 2016.01.10;
Скачать: [xml.tar.bz2];
ВнизОбновление программы Найти похожие ветки
← →
lewka_s (2014-07-03 08:19) [0]Приветствую, мастера!
Есть код, который выполняет обновление моей программы.if FileExists("temp.exe") then DeleteFile("temp.exe");
ss:=Application.ExeName;
AssignFile(Current_file, Application.ExeName);
Rename(Current_file, "temp.exe");
AssignFile(new_file,pach_up+"\Bak_up.exe");
Rename(new_file,ss);
Application.Terminate;
WinExec(PChar(ss),SW_SHOWNORMAL);
Этот код свое дело делает, т.е. обновляет мою программу, но удаляет файл обновления (Bak_up.exe).
Подскажите как это исправить? Что бы файл Bak_up.exe оставался на своем месте
← →
lewka_s (2014-07-03 08:35) [1]Выполнял построчно этот код. Файл Bak_up.exe удаляется на строке
Rename(new_file,ss);
. НО почему? Rename ведь переименовывает файл, а не удаляет.
← →
ВладОшин © (2014-07-03 08:45) [2]переименован как уже существующий
← →
ВладОшин © (2014-07-03 08:47) [3]?
Rename(new_file,ss); -> Rename(new_file,pach_up+"\"+ss);
← →
lewka_s (2014-07-03 09:29) [4]
> Rename(new_file,pach_up+"\"+ss);
Так пишет "I/O error 161"
т.к. pach_up - это путь до файла обновления. Имя файла обновления не совпадает с именем файла предыдущей версии программы.
← →
Dennis I. Komarov © (2014-07-03 09:49) [5]Напишу нормальный "обновлятор" - от 750$
← →
han_malign (2014-07-03 09:55) [6]
> Rename ведь переименовывает файл, а не удаляет.
- ну...
Звали тебя, скажем, Серожа, а в 25 лет ты поменял паспорт на имя Ваня.
Вопрос - где теперь кредиторам искать Серожу?
Переименование - это оптимизированная версия копирования + удаления...
Для достижения просветления - предлагаю обратить внимание на Windows.CopyFile()...
← →
lewka_s (2014-07-03 11:09) [7]Решил вот так сделать
AssignFile(new_file,pach_up+"\Bak_up.exe");
Rename(new_file,ss);
CopyFile(PChar(pach_up+"\Bak_up_copy.exe"),PChar(pach_up+"\Bak_up.exe"),False);
DeleteFile(PChar(pach_up+"\Bak_up_copy.exe"));
Application.Terminate;
← →
Кщд (2014-07-03 11:39) [8]>lewka_s (03.07.14 11:09) [7]
вам всего-то нужно скопировать Bak_up.exe в файл с именем Application.ExeName
и завязывать с программированием
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2016.01.10;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.002 c