将TimeStamp附加到文件名

我遇到过几次这个问题,我想在同一个目录下有同一个文件的多个版本。 我一直在使用C#的方式是通过在文件名中添加一个时间戳,像这样DateTime.Now.ToString().Replace('/', '-').Replace(':', '.') 。 有一个更好的方法吗?

你可以使用DateTime.ToString方法(String)

DateTime.Now.ToString("yyyyMMddHHmmssfff")

或者string.Format

string.Format("{0:yyyy-MM-dd_hh-mm-ss-tt}",DateTime.Now) ;

(年),M(月),d(天),h(小时12),H(小时24),m(分钟),s(秒),f(第二小数),F (第二部分,尾随零被修剪),t(PM或AM)和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) ); } } 

我更喜欢使用:

 string result = "myFile_" + DateTime.Now.ToFileTime() + ".txt"; 

也许追加DateTime.Now.Ticks ,是因为你不会创build3个string,而且ticks的值也是唯一的,所以速度要快一点。

你可以使用下面的代码:

 DateTime.Now.Ticks 

您可以使用:

 Stopwatch.GetTimestamp();