我收到错误"不支持给定路径的格式"使用此代码:
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());
答案 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
。