сериализируйте объект (к памяти или диску), десериализуйте его, используйте отражение для сравнения этих двух, тогда выполняет все модульные тесты на тот объект снова (кроме сериализации, конечно)
, это предполагает, что модульные тесты могут принять объект как цель вместо того, чтобы делать их собственное
Вот метод, который я часто использую именно в этом случае. Просто передайте строку типа «Снимок экрана», и он найдет имя файла с наименьшим доступным значением в формате «Снимок экрана [номер]» (или просто «Снимок экрана», если его еще нет):
private string GetUniqueName(string name, string folderPath)
{
string validatedName = name;
int tries = 1;
while (File.Exists(folderPath + validatedName))
{
validatedName = string.Format("{0} [{1}]", name, tries++);
}
return validatedName;
}
(Примечание: это немного упрощенная версия, не учитывающая расширения файлов).
Есть ли причина, по которой вы используете числа? Будет ли эта же папка повторно использована позже для другого сеанса? Должны ли номера перезапускаться и заменять существующие файлы, если день другой?
Это такие вещи, о которых следует помнить. Стоит отметить, что OS X раньше предоставляла " легко избежать конфликтов имен и т. д.
Как указано в других предложениях, вам все равно необходимо проверить, существует ли уже файл, и при повторной попытке DateTime.Now будет другим, поэтому имя файла будет другим. Конечно, у вас не должно возникнуть никаких конфликтов, если только скриншоты не находятся в одной и той же миллисекунде или пользователь не ввязывает дату / время (или летнее время тоже может вас испортить).
легко избежать конфликтов имен и т. д.Как указано в других предложениях, вам все равно необходимо проверить, существует ли уже файл, и при повторной попытке DateTime.Now будет другим, поэтому имя файла будет другим. Конечно, у вас не должно возникнуть никаких конфликтов, если только скриншоты не находятся в одной и той же миллисекунде или пользователь не ввязывает дату / время (или летнее время тоже может вас испортить).
Поскольку вы пишете файлы, один из подходов - поиск текущий каталог сохранения и найдите самый новый файл с именем ScreenshotXX и используйте регулярное выражение, чтобы получить число из имени.
сводка решения
подойдет ли это вам?