我遇到过几次这个问题,我想在同一个目录中有同一个文件的多个版本。我一直使用C#的方式是通过向文件名添加一个时间戳,如DateTime.Now.ToString().Replace('/', '-').Replace(':', '.')
。 有没有更好的方法来做到这一点?将时间戳添加到文件名
回答
您可以使用DateTime.ToString Method (String)
DateTime.Now.ToString("yyyyMMddHHmmssfff")
string.Format("{0:yyyy-MM-dd_hh-mm-ss-fff}",DateTime.Now)
;
$"{DateTime.Now:yyyy-MM-dd_hh-mm-ss-fff}"
有以下自定义格式说明Y(年),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)
);
}
}
也许会附加DateTime.Now.Ticks
,因为您不会创建3个字符串,并且ticks值始终也是唯一的,所以速度稍快一点。
我更喜欢使用:
string result = "myFile_" + DateTime.Now.ToFileTime() + ".txt";
ToFileTime()做了什么?
将当前DateTime对象的值转换为Windows文件时间。
public long ToFileTime()
Windows文件时间是代表1月1日,1601 AD(CE)协调通用时间自午夜12:00时起已经过的100毫微秒的时间间隔的数目,一个64位的值(UTC )。 Windows使用文件时间来记录应用程序创建,访问或写入文件的时间。
你可以使用:
Stopwatch.GetTimestamp();
这个答案是你得到时间戳的方式!使用Path类将它附加到一个文件并且字符串操作根本不是问题。这只是DateTime.ToString方法(String)或string.Format(“{0:yyyy-MM-dd_hh-mm-ss-tt}”,DateTime.Now)的替代方案; – Joseph
您可以改为使用如下:
DateTime.Now.Ticks
- 1. Android将时间戳添加到文件
- 2. 如何将时间戳添加到文件名为java.util.logging.FileHandler.pattern
- 3. 将时间戳记添加到BASH中的mv文件名
- 4. PHP:将时间添加到时间戳
- 5. 将时间添加到时间戳
- 6. 将时间添加到时间戳
- 7. 在静音时分割音频时将时间戳添加到文件名
- 8. 将48小时添加到CSV文件中的时间戳
- 9. Extjs-将时间戳添加到时间戳
- 10. 将值添加到时间戳
- 11. 将3年添加到时间戳
- 12. 如何将时间戳添加到TFSBuild.proj?
- 13. 如何将时间戳添加到OutputDebugString()?
- 14. 将时间戳添加到mp4容器
- 15. 将秒添加到时间戳
- 16. 如何将日期时间戳添加到log4j2日志文件?
- 17. 如何将时间戳记添加到日志文件
- 18. 将时间戳添加到文件的Gradle脚本
- 19. Bash:将命令输出和时间戳添加到文件
- 20. 如何将时间戳证书添加到Linux上的签名PE文件?
- 21. 如何将时间戳签名添加到System.IO.Packaging.Package?
- 22. PostgreSQL:从列值中将时间间隔添加到时间戳
- 23. ORACLE SQL:将时间添加到带时区的时间戳
- 24. 击解压缩文件,并添加时间戳名
- 25. Jmeter和Filewriter - 为文件名添加日期+时间戳
- 26. 时间戳文件名加文件扩展名
- 27. 添加时间戳命令重定向到文本文件
- 28. 将工作时间添加到时间戳
- 29. 将日期和时间添加到MySQL中的时间戳中
- 30. 将文本追加到带有时间戳的文本文件
我加'Path.GetDirectoryName(文件名)'得到文件的完整路径。然后用'Path替换'string.Concat()'。合并()'得到完整的文件名。 – gilu