使用当前系统时间重命名文件

时间:2014-09-04 12:09:13

标签: c# .net

我收到错误"不支持给定路径的格式"使用此代码:

    string filename = Path.GetFileName(fileUpload1.PostedFile.FileName);

    string oldname = (Server.MapPath(string.Format("/Projects/" +              
    ddlProjectapplication.SelectedItem.ToString() + "/temp/" + filename)));

   System.IO.File.Move(oldname, oldname+DateTime.Now.ToString());

1 个答案:

答案 0 :(得分:2)

你至少应该包含异常堆栈跟踪,但我<{1}} 猜测,因为File.Move()会返回类似这样的内容(根据当前文化):

09/04/2014 14:12:00

很明显,它不是一个有效的文件名(因为 / 是路径分隔符,所以你会有意想不到的东西,是卷分隔符然后它&& #39;在那里无效,你得到&#34;不支持给定路径的格式&#34; )。

您可能会做的是:

DateTime.Now.ToString()

另请注意,这会将时间戳添加到文件名中,因此var now = DateTime.Now; var newName = String.Format("{0}.{1:0000}{2:00}{3:00}-{4:00}{5:00}{6:00}", oldName, now.Year, now.Month, now.Day, now.Hour, now.Minute, now.Second); System.IO.File.Move(oldname, newName); 将成为test.txt(使用建议的代码)。如果要保留文件扩展名(更改其名称),可以执行以下操作:

test.txt-20140904-141200

使用此代码string path = Path.GetDirectoryName(oldName); string name = Path.GetFileNameWithoutExtension(oldName); string extension = Path.GetExtensions(oldName); var now = DateTime.Now; var newName = String.Format("{0} ({1:0000}{2:00}{3:00}-{4:00}{5:00}{6:00})", name, now.Year, now.Month, now.Day, now.Hour, now.Minute, now.Second); System.IO.File.Move(oldname, System.IO.Path.Combine(path, newName + extension)); 将成为test.txt