Вопрос Папка для работы временных файлов

w.a.l

Мимокрокодил
Здравствуйте. Я здесь нович0к, хотя IS давно юзаю. У меня вопрос: как распаковывающиеся временные файлы (архивы) заставить работать в папке установки {app}. Что бы в папке установки создавалась папка для распаковки архивов, ну и само собой что бы как положено эта папка с временными файлами удалялась. Что бы папки вне папки установки не использовалась для распаковки архивов вообще и ВСЁ происходило в {app} после её создания установщиком.
 
Последнее редактирование:

ZVSRus

Участник
w.a.l, У меня вопрос: как все временные файлы заставить работать в папке установки {app}
Как вы их хотите заставить работать в папке установки {app}, если временные файлы работают во время инициализации приложения, то есть когда папка {app} ещё не существует, когда установщик запущен но ничего ещё не устанавливает, и в это время временные файлы (dll, картинки) работают во временной папке {tmp}. Вместо константы {tmp} задать константу {app}?
 

w.a.l

Мимокрокодил
ВСЁ происходило в {app} после её создания установщиком.
После того как создалась папка {app} установщиком, конкретно распаковка

то есть когда папка {app} ещё не существует, когда установщик запущен но ничего ещё не устанавливает, и в это время временные файлы (dll, картинки) работают во временной папке {tmp}.
Исправил пост
 
Последнее редактирование:

ZVSRus

Участник
w.a.l, ВСЁ происходило в {app} после её создания установщиком.
Что бы все происходило в {app}, так вместо {tmp} задай константу {app} тогда все временные файлы установятся как и все компоненты программы.
Если скажем так: {app}\своя папка для временных файлов; и затем свою эту папку удалить, тогда не понятно зачем окольные пути.
 

w.a.l

Мимокрокодил
А куда и где это прописывать ? Не нашёл.
Я так понимаю в ISDone.iss ?
сЛучайно не здесь :
Код:
 if not ISArcExtract ( 1, 0, ExpandConstant('{src}\data.bin'), ExpandConstant('{app}'), '', false, '{#Password}', ExpandConstant('{tmp}\arc.ini'), ExpandConstant('{app}'), notPCFonFLY{PCFonFLY}) then break;
?
 

ZVSRus

Участник
w.a.l, А куда и где это прописывать ? Не нашёл.
Вы уже изменили изначальный вопрос. Как у вас выглядит секция [Files]?
 

w.a.l

Мимокрокодил
Нет. Случайно здесь
Код:
if not SrepInit(ExpandConstant('{app}'),256,0) then break;
if not PrecompInit(ExpandConstant('{app}'),128,PCFVer) then break;
у меня именно так и прописано

w.a.l, А куда и где это прописывать ? Не нашёл.
Вы уже изменили изначальный вопрос. Как у вас выглядит секция [Files]?
Код:
#ifdef CustomFont
Source: "{#CustomFont}"; Flags: DontCopy
#endif
Source: "InstallFiles\ImageFiles\*.*"; Flags: DontCopy
Source: "InstallFiles\DllFiles\*.*"; Flags: DontCopy
#ifdef Slides
Source: "InstallFiles\ImageFiles\SlidesFiles\*.*"; Flags: DontCopy
#endif
#if Mode == "Black"
Source: "InstallFiles\ImageFiles\B&W_Mode\Close.png"; Flags: DontCopy
Source: "InstallFiles\ImageFiles\B&W_Mode\Min.png"; Flags: DontCopy
#else if Mode == "White"
Source: "InstallFiles\ImageFiles\B&W_Mode\Close_White.png"; Flags: DontCopy
Source: "InstallFiles\ImageFiles\B&W_Mode\Min_White.png"; Flags: DontCopy
#endif
 

w.a.l

Мимокрокодил
Именно так? А то по дефолту так
Код:
if not SrepInit('',512,0) then break;
if not PrecompInit('',128,PCFVer) then break;

В isDONE

Код:
if ISDoneInit(ExpandConstant('{src}\records.inf'), $F777, Comps1,Comps2,Comps3, MainForm.Handle, 0, @ProgressCallback) then begin
        repeat
          #ifdef SrepInside
            if not SrepInit(ExpandConstant('{app}\'), 512, 0) then Break;
          #endif
          #ifdef PrecompInside
            if not PrecompInit(ExpandConstant('{app}\'), 256, 0) then Break;
          #endif
          if not FileSearchInit(True) then Break;
 

nik1967

Old Men
Проверенный
Попробуй без слеша после константы.
Во время распаковки, во временной папке, в CLS.ini что прописывается?
Должно быть примерно следующее:
Код:
[Srep]
Memory=256
TempPath=D:\Games\R.G. Catalyst\The Vanishing of Ethan Carter Redux\
[Precomp]
Memory=128
TempPath=D:\Games\R.G. Catalyst\The Vanishing of Ethan Carter Redux\
 
Последнее редактирование:

ZVSRus

Участник
w.a.l,
[Files]
Source: "InstallFiles\ImageFiles\B&W_Mode\Close.png"; Flags: DontCopy

Source: "InstallFiles\ImageFiles\B&W_Mode\Min.png"; Flags: DontCopy

Source: "InstallFiles\ImageFiles\B&W_Mode\Close_White.png"; Flags: DontCopy
Source: "InstallFiles\ImageFiles\B&W_Mode\Min_White.png"; Flags: DontCopy
Как понимаю эти картинки временные файлы, флаг указывает не копировать на комп пользователя.
(хотя временная папка {tmp} и не указана)
Не понимаю зачем для них создавать отдельную папку в директории установки программы или игры, и после завершения работы установщика эту папку удалять! У вас все прописано как надо, на эти картинки можно лицезреть только на страницах установщика.
 

w.a.l

Мимокрокодил
ZVSRus, мне надо что бы распаковка архивов шла в папке app. Про картинки, dll и всё остальное, что создаётся до появление папки app я разговор не веду. В первом посте я не точно сформулировал вопрос, но пост уже поправил.


Попробуй без слеша после константы.
Во время распаковки, во временной папке, в CLS.ini что прописывается?
Должно быть примерно следующее:
Код:
[Srep]
Memory=256
TempPath=D:\Games\R.G. Catalyst\The Vanishing of Ethan Carter Redux\
[Precomp]
Memory=128
TempPath=D:\Games\R.G. Catalyst\The Vanishing of Ethan Carter Redux\
Вечером до компа доберусь, попробую, посмотрю, отпишусь
 

w.a.l

Мимокрокодил
Всем снова здрасьте. С тем скриптом, что то много мороки, я его бросил. Есть полностью рабочий, но вопрос тот же: распаковка архивов в в уже созданной установщиком папке {app}.
Этот скрипт работает конкретно только с расширением arc. Скрипт конфигов (ini) не имеет вообще. Есть FreeArc.iss где всё прописано.

Поможите. Выкладываю FreeArc.iss:
 

Вложения

Сверху