C# 我可以用streamwriter创建一个动态文件名吗?

C# 我可以用streamwriter创建一个动态文件名吗?,c#,timestamp,streamwriter,C#,Timestamp,Streamwriter,我试图让程序写入一个带有时间戳的文件。基本上,将时间戳保存为字符串值,我希望它基于该时间戳创建文件。例如“航班舱单10/14/2010 1:38:29 AM.txt” 做这件事的正确方法是什么 我试过这样的方法: string timeStamp = DateTime.Now.ToString(), filePath = string.Format("Flight Manifest {0}", timeStamp); MessageBox.Show(filePath); StreamWrite

我试图让程序写入一个带有时间戳的文件。基本上,将时间戳保存为字符串值,我希望它基于该时间戳创建文件。例如“航班舱单10/14/2010 1:38:29 AM.txt”

做这件事的正确方法是什么

我试过这样的方法:

string timeStamp = DateTime.Now.ToString(), filePath = string.Format("Flight Manifest {0}", timeStamp);
MessageBox.Show(filePath);

StreamWriter outputFile = new StreamWriter(filePath);

向文件名添加时间戳的更好方法可能是使用某种格式将日期时间转换为字符串,并附加到文件名中。下面给出了一个例子-

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

如果不使用格式字符串,则文件命名不支持“/”和“:”等字符。

忽略消息框,这只是为了测试字符串是否正确生成。您的问题是什么?在此之后,您只需在流中写入并处理它,它表示“不支持给定路径的格式”。您可能需要显式控制日期格式,因为我认为大多数操作系统都会在文件名中使用冒号。试试DateTime.Now.ToString(“yyyyMMddTHHmmss”)。@Paul Ruane一定就是它。当我控制格式时,它工作。我本以为逐字记录会有帮助,但我没有想到冒号。谢谢:)