繁体   English   中英

使用C#在app.config文件中包含文件名

[英]Encasing a filename inside an app.config file using C#

是否可以将文件名包含在app.config文件中并在代码中使用它们?

例如,此代码完美地运行:

string folder = @"C:\CDR_FTP1\ttfiles_exported\";

如果我想从app.config文件中获取上述值

  1. 有可能这样做吗?
  2. 语法是什么?

例如,在app.config中,我可以尝试这样的事情:

<add key="InputDir" value=@"D:\CDR_FTP1\ttfiles_exported\" />

我无法添加“@”,因为它会给我以下错误:

"The character '@', hexadecimla value 0x40 is illegal at the beginning of an XML name."

如果我尝试在我的代码中使用它,如下所示,那很好,但是我需要在哪里以及如何使用“@”让应用程序正确读取它?

string folder = ConfigurationSettings.AppSettings["InputDir"];

只需使用:

<add key="InputDir" value="D:\CDR_FTP1\ttfiles_exported\" />

在XML属性中无需转义\\

扩展基里尔的答案:

XML属性中的特殊字符与C#字符串中的特殊字符不同。

在C#中,字符'\\'是字符串转义字符,用于表示转义符号的'\\ n'等转义序列,正如您可能知道的那样; 因此需要以'\\\\'或使用@“”进行转义。

在XML中,'''在属性值中没有特殊含义,可以按原样使用。 对于'&'和'''字符等,情况并非如此。如果您想要包含该值:

M & M "The chocolates"

在app.config中,他们必须进行转义,以便:

<add key="SomeString" value="M &amp; M &quot;The chocolates&quot;" />

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM