// Путь к профилю
string profilePath = project.Variables["profile"].Value;
//string yandex_login = project.Profile.Login;
//string yandex_password = project.Profile.Password;
//string yandex_secret_question = project.Profile.SecretQuestionAnswer1;
// Переменные проекта, которые нужно сохранить
string[] saveVars = new string[] { "yandex_login", "yandex_password", "yandex_secret_question", "phone" };
#region Save
Action<string,string[]> Save = (path, saveVariables) =>
{
if (File.Exists(path))
{
string profilePathAlt = profilePath.Replace(".zpprofile", "_ForCheck.zpprofile");
// Сохранение копии профиля
project.Profile.Save(profilePathAlt, true, true, false, true, true, true, true, true, true, saveVariables);
var infoOld = new FileInfo(profilePath);
var infoNew = new FileInfo(profilePathAlt);
// Допустимая погрешность в байтах
long diff = 5 * 1024;
// Если новый файл тот же или больше, с учётом допустимой погрешности
if (infoNew.Length >= infoOld.Length - diff)
{
// Сохранение профиля и удаление копии
project.Profile.Save(profilePath, true, true, false, true, true, true, true, true, true, saveVariables);
File.Delete(profilePathAlt);
}
else
{
string text = String.Format("Обнаружено уменьшение размера профиля в байтах. Старый размер: {0} Новый размер: {1}. Путь: {2}",
infoOld.Length, infoNew.Length, profilePath);
//project.SendInfoToLog(text, true);
throw new Exception(text);
}
}
else
{
project.Profile.Save(path, true, true, false, true, true, true, true, true, true, saveVariables);
}
};
#endregion
// Сохранение профиля
Save(profilePath, saveVars);