Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用C将文件名封装在app.config文件中#_C#_.net_Xml_App Config_Filenames - Fatal编程技术网

C# 使用C将文件名封装在app.config文件中#

C# 使用C将文件名封装在app.config文件中#,c#,.net,xml,app-config,filenames,C#,.net,Xml,App Config,Filenames,是否可以将文件名封装在app.config文件中并在代码中使用它们 例如,此代码可以完美地工作: string folder = @"C:\CDR_FTP1\ttfiles_exported\"; 如果我想从app.config文件中获取上述值 有可能吗 语法是什么 例如,在app.config中,我可以尝试使用以下内容: <add key="InputDir" value=@"D:\CDR_FTP1\ttfiles_exported\" /> 如果我尝试在下面的代码中使用它,这

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

例如,此代码可以完美地工作:

string folder = @"C:\CDR_FTP1\ttfiles_exported\";
如果我想从app.config文件中获取上述值

  • 有可能吗
  • 语法是什么
  • 例如,在app.config中,我可以尝试使用以下内容:

    <add key="InputDir" value=@"D:\CDR_FTP1\ttfiles_exported\" />
    
    如果我尝试在下面的代码中使用它,这很好,但是我需要在哪里以及如何粘贴“@”,应用程序才能正确读取它?

    string folder = ConfigurationSettings.AppSettings["InputDir"];
    
    只需使用:

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

    无需在XML属性中转义
    \

    展开Kirill的答案:

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

    在C#中,字符“\”是字符串转义字符,您可能知道,它用于表示转义序列,如行尾的“\n”;因此,需要将其转义为“\\”或使用@”

    在XML中,属性值中的“\”没有特殊含义,可以按原样使用。对于“&”和“'”字符以及其他字符,情况并非如此。如果要包含该值:

    M & M "The chocolates"
    
    在app.config中,必须对其进行转义,以便:

    <add key="SomeString" value="M &amp; M &quot;The chocolates&quot;" />
    
    
    
    因此,如果我将值放在app.config中,我根本不需要对代码中的“@”做任何事情——正确吗?在c#中使用前缀
    @
    和字符串,称为
    逐字字符串文字
    。当您想要避免转义像\这样的字符时,它很有用,这些字符会在文件路径中多次出现。有关详细信息,请参阅
    <add key="SomeString" value="M &amp; M &quot;The chocolates&quot;" />