现在我有文件输出到路径;"C:\Users\Daniel\Average.txt"
我正在尝试编写一个函数来在“平均值”之后但在 .txt 之前输入当前时间戳
我知道这是非常初级的,但我不知道从哪里开始......
编辑:我最初是硬编码的;
string path = "C:\Users\Daniel\Average.txt";
现在我有文件输出到路径;"C:\Users\Daniel\Average.txt"
我正在尝试编写一个函数来在“平均值”之后但在 .txt 之前输入当前时间戳
我知道这是非常初级的,但我不知道从哪里开始......
编辑:我最初是硬编码的;
string path = "C:\Users\Daniel\Average.txt";
您可以改用它:
var outputFile = @"C:\Users\Daniel\Average.txt";
var outputDir = Path.GetDirectoryName(outputFile);
var fileWithTimeStamp = string.Format("{0}_{1}{2}", Path.GetFileNameWithoutExtension(outputFile),
DateTime.Now.ToString("yyyyMMddHHmmssffff"),
Path.GetExtension(outputFile));
var outputWithTimeStamp = Path.Combine(outputDir, fileWithTimeStamp);
我对 LINQPad 的测试:
outputWithTimeStamp.Dump();
C:\Users\Daniel\Average_201304230828184465.txt
您可以使用Path.GetFileNameWithoutExtension
.
var info=new FileInfo(@"C:\Users\Daniel\Average.txt");
var span=TimeSpan.FromTicks(DateTime.Now.Ticks).ToString();
var name=Path.GetFileNameWithoutExtension(info.FullName);
name=(new[] { name, span, info.Extension }).Aggregate(String.Concat);
这name
就是你最终想要的。
还有另一种合成全名的方法:
var info=new FileInfo(@"C:\Users\Daniel\Average.txt");
var span=TimeSpan.FromTicks(DateTime.Now.Ticks).ToString();
var fullName=info.FullName;
var length=fullName.LastIndexOf(info.Extension);
fullName=fullName.Substring(0, length);
fullName=(new[] { fullName, span, info.Extension }).Aggregate(String.Concat);
我认为这样的事情对你有用:
StreamWriter sw = new StreamWriter("C:\Users\Daniel\Average"+DateTime.Now.ToString(ADD_FORMAT_HERE) +".txt");
然后,您需要将内容转储到文件中。
//有一个字符串变量来保存你的输出
字符串输出;
File.WriteAllText("C:\Users\Daniel\Average" + DateTime.Now + ".txt",output);
这将创建文本文件并将输出写入该文件。
试试 string.format:
string Today = DateTime.Now.ToString("MMMM_dd");
string name = string.Format(@"Average_{0}.txt",Today);
您可以更改DateTime.Now.ToString(
包括秒、分钟等...