别人写了一个函数把pdf存到硬盘上, 其中两句:
String.Format(@"%TEMP%\{0}", Guid.NewGuid()
String.Format(@"{0}\{1}.pdf", tempdir, fileName);不是很理解 @ 和 % 是什么意思, 请教大家, 我想指定路径为 D:\PDF report, 不知跟着两个符号有没有关系, 谢谢了.... 

解决方案 »

  1.   

    string  a=“\\a”;   \是转义符合      实际上a存的就是 "\a"
    上面的表达式就等价于
    string a=@“\a”;
    所以@ 的意思 =就是     这个字符串,忽略转义符合% 没什么意思
      

  2.   

    %TEMP%应该是环境变量,指你电脑上temp文件夹路径
      

  3.   

    String.Format(@"%TEMP%\{0}", Guid.NewGuid() 
    的结果是%TEMP%\Guid.NewGuid() 
    %原样输出
      

  4.   

    谢谢大家的解答, 
    @符号:明白了,就是对后边引号内的所有保留字符转义, 而不用每个都加"/"在前边
    %符号:还是不明白, 如果像3楼所说的%temp%为路径, 那%具体是什么意思? temp前后都有%, 是成对出现的还是每个%本身有自己的意思?
      

  5.   

    %跟string.Format没有关系。%temp%是Windows系统的事情,它是一个环境变量,代表着您的零时目录地址。你可以到dos提示符下,输入:
    echo %temp%然后你就可以看到具体的零时目录地址了
      

  6.   

    在C#的string.Format中,不会对%作处理,因此,还是会输出%TEMP%这样的内容
      

  7.   

    %保持原意,就是百分号的意思,在C#中没有其它意义,不过在Windows系统中,%temp%代表系统的临时文件夹,你在“开始”->“运行”里输入%temp%,会打开那个文件夹的,这是和C#无关的符号。
      

  8.   

    感谢各位的发言, 现在基本上懂了, %temp%是windows的程序, 同理还有%system%这些, 这里的%temp%要跟Environment.ExpandEnvironmentVariables结合使用, 一开始不知道所有没有写出这个. 还有最后一个问题, 既然%***%这些是windows预定义的, 有没有用来表示D盘的? 因为文件想存到D盘...再次感谢一下.