2

现在我有文件输出到路径;"C:\Users\Daniel\Average.txt"

我正在尝试编写一个函数来在“平均值”之后但在 .txt 之前输入当前时间戳

我知道这是非常初级的,但我不知道从哪里开始......

编辑:我最初是硬编码的; string path = "C:\Users\Daniel\Average.txt";

4

5 回答 5

2

您可以改用它:

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

于 2013-04-23T00:20:09.873 回答
2

您可以使用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);
于 2013-04-23T00:14:00.860 回答
1

我认为这样的事情对你有用:

StreamWriter sw = new StreamWriter("C:\Users\Daniel\Average"+DateTime.Now.ToString(ADD_FORMAT_HERE) +".txt");

然后,您需要将内容转储到文件中。

于 2013-04-23T00:18:04.493 回答
0

//有一个字符串变量来保存你的输出

字符串输出;

File.WriteAllText("C:\Users\Daniel\Average" + DateTime.Now + ".txt",output);

这将创建文本文件并将输出写入该文件。

于 2013-04-23T03:38:47.147 回答
0

试试 string.format:

string Today = DateTime.Now.ToString("MMMM_dd");
string name = string.Format(@"Average_{0}.txt",Today);

您可以更改DateTime.Now.ToString(包括秒、分钟等...

于 2013-04-23T00:14:14.100 回答