重命名关闭的文件
本文关键字:文件 重命名 | 更新日期: 2023-09-27 17:59:50
当我关闭C#窗口时,我希望将时间戳附加到文件名中。然而,当我运行以下代码时,我得到了这样的错误:
’系统。NotSupportedException’
和
"给定路径的格式不是支持。".
有什么方法可以修改参数吗?
private void Window_Closed(object sender, EventArgs e)
{
sw_bea.Close();
String file_Time = DateTime.Now.ToString("h:mm:ss tt").ToString();
System.IO.File.Move(@"C:'Users'abc'Desktop'tmp_bea.txt", @"C:'Users'abc'Desktop'tmp_bea"+file_Time+".txt");
}
Windows文件名中不允许使用以下保留字符:
- <(小于)
- >(大于)
- :(冒号)
- "(双引号)
- /(正斜杠)
- ''(反斜杠)
- |(垂直钢筋或管道)
- ?(问号)
- *(星号)
由于您选择的时间格式,您的文件名包括":"。
有关详细信息,请参阅Windows开发人员中心的命名文件、路径和命名空间。一定要看看这篇文章,因为它列出了比我在这里包含的更多的内容,比如ASCII NUL等等
就我个人而言,当我在文件名中包含日期或时间时,我会删除任何分隔符,并将所有内容放入军用时间。因此,下午2:03将是1403,凌晨5:20将是0520。现在是08012016_1217(8/1/2016下午12:17)。正如你所看到的,我用下划线分隔"信息"块,就像这里的日期和时间一样。到目前为止,使用它非常容易。
一般来说,如果你想确保文件名不包含非法字符,你可以做一些类似的事情
for (char c in Path.GetInvalidFileNameChars())
filename=filename.Replace(c, '_');
如注释中所述,由于Windows操作系统的限制,您不能使用保留字符。我就是这样做的:
string MyFileName = DateTime.Now.ToString("yyyy-dd-MM_HH-mm-ss");