我有以下代码;
string oldPath = @"C:\\Users\\akclark.DOMAIN-A\\Documents\\Visual Studio 2013\\WebSites\\Quote\\quote.xlsx";
string newFileName = "" + GlobalVariables.quoteNumber + "_" + GlobalVariables.quoteRevision + ".xlsx";
string newPath = @"C:\\Users\\akclark.DOMAIN-A\\Documents\\Visual Studio 2013\\WebSites\\Quote\\" + newFileName;
FileInfo f1 = new FileInfo(oldPath);
if (f1.Exists)
{
FileInfo f2 = new FileInfo(newPath);
if (f2.Exists){
File.Delete(newPath);
} else {
File.Copy(oldPath, newPath);
Response.ContentType = "application/vnd.ms-excel";
Response.AddHeader("content-length", f2.Length.ToString());
Response.TransmitFile(newPath);
Response.End();
}
}
else
{
Label20.Visible = true;
Label20.Text = "Excel Template not found! Please Contact IT Department with this message.";
}
每次我运行代码时,它都会在
Response.TransmitFile(newPath);
上抱怨找不到该文件。我正在运行Windows 7 Pro,带有Visual Studio 2013 Update 2的x64。这是.NET 4.5 Web项目。
但是我刚才复制了三行。我究竟做错了什么?
最佳答案
这就是问题:
@"C:\\Users\\akclark.DOMAIN-A\\Documents\\Visual Studio 2013\\WebSites\\Quote\\"
逐字字符串+双反斜杠=带有双反斜杠的文件路径,
FileInfo
和Response.TransmitFile
可以将其区别对待。