将FolderDialogBox.SelectedPath 中的\\ 替换为\

Nat*_*ath 1 c#

我在我的应用程序之一中使用文件夹对话框。当选择一个目录并将其分配给另一个字符串时,我得到一个类似的值C:\\test

对于某些作业,我想要 的值c:\test

我在 stackoverflow 上进行了研究,但没有找到任何有效的答案。我尝试了各种替换,但不起作用。

任何帮助将不胜感激。

代码:

private void label1_Click(object sender, EventArgs e)
    {
       folderBrowserDialog1.ShowNewFolderButton = false;

        if (folderBrowserDialog1.ShowDialog() == DialogResult.OK)
        {
            string p = @folderBrowserDialog1.SelectedPath; //=> Selected C:\ACTNT
            //removing @ in front of folderBrowserDialog1 does not change the situation
            strPathName.Text = p; // => display c:\ACNT
            con = "database = " + p; // => actual value "database = c:\\ACNT"
            UpdateTableName();
        }
    }
Run Code Online (Sandbox Code Playgroud)

如果我手动输入strPathNameas C:\ACNT,程序运行正常。

Jon*_*eet 5

到目前为止,其他答案都在谈论分配字符串文字,但听起来你无论如何都是通过 GUI获取这个字符串的,在这种情况下这是无关紧要的。

相关的是您如何确定该字符串实际上是c:\\test. 我强烈怀疑您正在调试器中查看它 - 调试器在显示字符串时会自动应用 C# 转义。

如果您只是将其打印到屏幕上,或者甚至逐个字符地举例(例如 call ToCharArray()),我想您会发现它只有一个反斜杠。不要被调试器愚弄了。