Я столкнулся с этой проблемой несколько раз, в которой хотел бы иметь несколько версий одного и того же файла в одном каталоге. Способ, которым я выполнял это с помощью С#, - это добавить отметку времени к имени файла с чем-то вроде DateTime.Now.ToString().Replace('/', '-').Replace(':', '.')
.
Есть ли лучший способ сделать это?
Добавить TimeStamp в имя файла
Ответ 1
Вы можете использовать метод DateTime.ToString(String)
DateTime.Now.ToString("yyyyMMddHHmmssfff")
или string.Format
string.Format("{0:yyyy-MM-dd_hh-mm-ss-tt}",DateTime.Now)
;
Существуют следующие специальные спецификаторы формата y (год), M (месяц), d (день), ч (час 12), Н (час 24), м (минута), с (второй), f (второй фракция), F (вторая фракция, конечные нули обрезаются), t (P.M или A.M) и z (часовой пояс).
С методом расширения
Использование:
string result = "myfile.txt".AppendTimeStamp();
//myfile20130604234625642.txt
Метод расширения
public static class MyExtensions
{
public static string AppendTimeStamp(this string fileName)
{
return string.Concat(
Path.GetFileNameWithoutExtension(fileName),
DateTime.Now.ToString("yyyyMMddHHmmssfff"),
Path.GetExtension(fileName)
);
}
}
Ответ 2
Я предпочитаю использовать:
string result = "myFile_" + DateTime.Now.ToFileTime() + ".txt";
Ответ 3
Возможно, вместо добавления DateTime.Now.Ticks
будет немного быстрее, так как вы не будете создавать 3 строки, и значение ticks всегда будет уникальным.
Ответ 4
вы можете использовать:
Stopwatch.GetTimestamp();
Ответ 5
Вместо этого вы можете использовать:
DateTime.Now.Ticks