重命名关闭的文件

本文关键字:文件 重命名 | 更新日期: 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");