2014-09-09 4 views
1

То, что я пытаюсь сделать, это:Как проверить наличие каталога в препроцессоре Inno Setup?

#define SAMPLE_DOCS_ROOT "C:\SampleDocuments\" 
#if CLIENT != "" 
    #define SAMPLE_DOCS_CLIENT SAMPLE_DOCS_ROOT + "client\" + CLIENT 
    #ifexist SAMPLE_DOCS_CLIENT 
    #define SAMPLE_DOCS_PATH SAMPLE_DOCS_CLIENT + "\*" 
    #endif 
#endif 

SAMPLE_DOCS_PATH никогда не будет определено, даже если есть SAMPLE_DOCS_CLIENT папка.

Похоже, что директива ISPP #ifexist не принимает абсолютный или относительный путь к каталогу и принимает только пути к файлам. Есть ли способ проверить наличие каталога во время компиляции?

ответ

1

Вам необходимо использовать функцию DirExists. Директива #ifexist может использоваться только для файлов. Поэтому напишите это вместо:

#define SAMPLE_DOCS_ROOT "C:\SampleDocuments\" 
#if CLIENT != "" 
    #define SAMPLE_DOCS_CLIENT SAMPLE_DOCS_ROOT + "client\" + CLIENT 
    #if DirExists(SAMPLE_DOCS_CLIENT) 
    #define SAMPLE_DOCS_PATH SAMPLE_DOCS_CLIENT + "\*" 
    #endif 
#endif 
+0

Как использовать DirExists во время компиляции. Можете привести пример, пожалуйста? –

+0

Я добавил пример ... Не путайте, есть две функции 'DirExists'; один для времени выполнения и один для препроцессора. – TLama

+0

Спасибо за разъяснение, что :) –

Смежные вопросы