Добавить TimeStamp в имя файла

Я столкнулся с этой проблемой несколько раз, в которой хотел бы иметь несколько версий одного и того же файла в одном каталоге. Способ, которым я выполнял это с помощью С#, - это добавить отметку времени к имени файла с чем-то вроде DateTime.Now.ToString().Replace('/', '-').Replace(':', '.'). Есть ли лучший способ сделать это?

Ответ 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