private void BackupRecursively(SPWeb web, bool onlyValidate, bool isTopLevelSite, bool isCompressed) { //--loop through all subsites, call StartBackup3 recursively if (optBackupAllSubsites.Checked) { foreach (SPWeb subweb in web.Webs) { if (isCompressed) { BackupRecursively(subweb, onlyValidate, false, true); } else { BackupRecursively(subweb, onlyValidate, false, false); } } if (isTopLevelSite) { return; } } if (_cancelNotice) { throw new Eh.CancelException(); } _totalSites++; string backupFileName = txtBackupPath.Text + "\\" + AutoBackup.fetchCleanBackupFileName(web.Url) + ".SUSHIbackup"; //SmartStepUtil.AddToRTB(rtbDisplay, "Site to backup: "); //SmartStepUtil.AddToRTB(rtbDisplay, web.Url + "\r\n", Color.Blue, 0, true); //SmartStepUtil.AddToRTB(rtbDisplay, "Backup file name: " + backupFileName + "\r\n\r\n"); string args = string.Empty; if (isCompressed) { args = AutoBackup.fetchStsadmCmdArgsForBackup(web.Url, backupFileName, true); } else { args = AutoBackup.fetchStsadmCmdArgsForBackup(web.Url, backupFileName, false); } if (onlyValidate) { SmartStepUtil.AddToRTB(rtbDisplay, "stsadm.exe " + args + "\r\n\r\n", Color.Gray, 8, false); } else { //--do backup of site SmartStepUtil.AddToRTB(rtbDisplay, "starting backup..\r\n", Color.SeaGreen, 11, true); SmartStepUtil.AddToRTB(rtbDisplay, "stsadm.exe " + args + "\r\n", Color.Gray, 8, false); ProcessStartInfo si = new ProcessStartInfo(); si.Arguments = args; si.FileName = GlobalVars.StsadmExePath; Process ret = Process.Start(si); ret.WaitForExit(); } }