我想创建一些将报告导出到excel文件的功能, 但是当我尝试删除临时数据时,它无法正常工作。
File.Delete(tempFileName);
我尝试将消息框'tempFileName'设为正确
D:\test\bin\Debug\temptemp1.xls
然后我尝试手动删除它
File.Delete("D:\test\bin\Debug\temptemp1.xls");
它会给出错误结果'无法识别的转义序列';
我试着像这样改变它
File.Delete("D:/test/bin/Debug/temptemp1.xls");
并且工作顺利
我看到文档File.Delete here
并且它使用'\'而不是'/';
任何人都可以向我解释这个吗?
(我使用vs 2010和.net 4 winform)
答案 0 :(得分:2)
在常规字符串常量中,\
字符是转义字符,因此,如果要包含文字反斜杠,则需要将其转义(使用自身):
File.Delete("D:\\test\\bin\\Debug\\temptemp1.xls");
否则\t
将成为标签,\b
退格,\D
会向您显示unrecognised escape sequence
错误。
或者,您使用原始字符串来避免因转义而产生的所有复杂性:
File.Delete(@"D:\test\bin\Debug\temptemp1.xls");
不进行转义。
它与正斜杠/
一起使用的原因是因为Windows在 long 时间内能够处理这两种样式(在API中,但不在命令中)口译员cmd.exe
)。
答案 1 :(得分:1)
尝试..
File.Delete(@"D:\test\bin\Debug\temptemp1.xls");
... OR
File.Delete("D:\\test\\bin\Debug\\temptemp1.xls");
反斜杠是一个特殊字符。如此处所述...
http://msdn.microsoft.com/en-us/library/aa691090(v=vs.71).aspx
在a中跟随反斜杠字符()的字符 regular-string-literal-character必须是以下之一 字符:',“,\,0,a,b,f,n,r,t,u,U,x,v。否则,a 发生编译时错误。