Еще еще вопросец.
Допустим, для нормальной установки требуется 1gb свободного места, а для бекапа еще 2gb. Хотелось бы, что бы при нормальной установке, при условии недостаточного места выскакивало сообщение "Недостаточно места на диске", а при обычной установке+выбрано задание "backup" (т.е. тут уже необходима проверка на наличие 3гб места) выскакивало сообщение "Недостаточно места на диске для выполнения резервного копирования"
и второй вопрос: скрипт для определения размера файлов в папке назначения из руководства Kindly - не получается добавить проверку для более чем 3х файлов.
Буду благодарен за помощь.
Задача решена применением следующего срипта:
const
NeedSize = 5000; //Прописать, сколько мегабайт необходимо
NeedSizeBackup = 15000; //Прописать, сколько мегабайт необходимо для бекапа
DRIVE_UNKNOWN = 0;
DRIVE_NO_ROOT_DIR = 1;
DRIVE_REMOVEABLE = 2;
DRIVE_FIXED = 3;
DRIVE_REMOTE = 4;
DRIVE_CDROM = 5;
DRIVE_RAMDISK = 6;
function GetLogicalDrives: DWORD;
external 'GetLogicalDrives@kernel32.dll stdcall';
function GetDriveType(nDrive: String): Longint;
external 'GetDriveTypeA@kernel32.dll stdcall';
function NextButtonClick(CurPageID: Integer): Boolean;
var
Path: String;
FreeMB, TotalMB: Cardinal;
begin
Result:= True;
if CurPageID = wpSelectDir then
begin
Path:= ExtractFileDrive(WizardForm.DirEdit.Text);
GetSpaceOnDisk(Path, True, FreeMB, TotalMB);
if FreeMB < NeedSize then
begin
MsgBox('Недостаточно места на диске!', mbInformation, MB_OK)
Result:= False;
end;
end
else
Result:= True;
if IsTaskSelected('backup') then
if CurPageID = wpSelectTasks then
begin
Path:= ExtractFileDrive(WizardForm.DirEdit.Text);
GetSpaceOnDisk(Path, True, FreeMB, TotalMB);
if FreeMB < NeedSizeBackup then
begin
MsgBox('Недостаточно места на диске для выполнения резервного копирования!', mbInformation, MB_OK)
Result:= False;
end;
end;
end;
Допустим, для нормальной установки требуется 1gb свободного места, а для бекапа еще 2gb. Хотелось бы, что бы при нормальной установке, при условии недостаточного места выскакивало сообщение "Недостаточно места на диске", а при обычной установке+выбрано задание "backup" (т.е. тут уже необходима проверка на наличие 3гб места) выскакивало сообщение "Недостаточно места на диске для выполнения резервного копирования"
и второй вопрос: скрипт для определения размера файлов в папке назначения из руководства Kindly - не получается добавить проверку для более чем 3х файлов.
Буду благодарен за помощь.
Задача решена применением следующего срипта:
const
NeedSize = 5000; //Прописать, сколько мегабайт необходимо
NeedSizeBackup = 15000; //Прописать, сколько мегабайт необходимо для бекапа
DRIVE_UNKNOWN = 0;
DRIVE_NO_ROOT_DIR = 1;
DRIVE_REMOVEABLE = 2;
DRIVE_FIXED = 3;
DRIVE_REMOTE = 4;
DRIVE_CDROM = 5;
DRIVE_RAMDISK = 6;
function GetLogicalDrives: DWORD;
external 'GetLogicalDrives@kernel32.dll stdcall';
function GetDriveType(nDrive: String): Longint;
external 'GetDriveTypeA@kernel32.dll stdcall';
function NextButtonClick(CurPageID: Integer): Boolean;
var
Path: String;
FreeMB, TotalMB: Cardinal;
begin
Result:= True;
if CurPageID = wpSelectDir then
begin
Path:= ExtractFileDrive(WizardForm.DirEdit.Text);
GetSpaceOnDisk(Path, True, FreeMB, TotalMB);
if FreeMB < NeedSize then
begin
MsgBox('Недостаточно места на диске!', mbInformation, MB_OK)
Result:= False;
end;
end
else
Result:= True;
if IsTaskSelected('backup') then
if CurPageID = wpSelectTasks then
begin
Path:= ExtractFileDrive(WizardForm.DirEdit.Text);
GetSpaceOnDisk(Path, True, FreeMB, TotalMB);
if FreeMB < NeedSizeBackup then
begin
MsgBox('Недостаточно места на диске для выполнения резервного копирования!', mbInformation, MB_OK)
Result:= False;
end;
end;
end;