Просмотр исходного кода

ensure backup file name is unique

git-svn-id: svn://svn.code.sf.net/p/ditto-cp/code/trunk@599 595ec19a-5cb4-439b-94a8-42fb3063c22c
sabrogden 14 лет назад
Родитель
Сommit
ae9974184f
1 измененных файлов с 13 добавлено и 1 удалено
  1. 13 1
      DatabaseUtilities.cpp

+ 13 - 1
DatabaseUtilities.cpp

@@ -392,7 +392,19 @@ BOOL BackupDB(CString dbPath, CString prefix)
 	backup += GetFileName(dbPath) += _T("_") + prefix + _T("_") + versionString;
 	backup.Replace(_T(".db"), _T(""));
 	backup.Replace(_T("."), _T("_"));
-	backup +=  + _T(".db");
+
+	CString temp = backup;
+
+	temp += _T(".db");
+
+	int i = 1;
+	while(FileExists(temp))
+	{
+		temp.Format(_T("%s_%d.db"), backup, i);
+		i++;
+	}
+
+	backup = temp;
 
 	BOOL ret = CopyFile(dbPath, backup, TRUE);