如何替换 PATH 环境变量以双引号 + 反斜杠那些在 C# 中带有空格的变量?

How do I replace PATH Environment variables to double quote + backslashes those which have spaces in C#?

提问人:Bas Curtiz 提问时间:6/30/2018 最后编辑:Bas Curtiz 更新时间:7/1/2018 访问量:288

问:

语言版本: C# - 操作系统: Win 10 - IDE: Visual Studio

让用户设置路径时遇到了问题。 当路径没有空格时,一切都很好。没有问题。

当路径包含空格时,我将数据转发到的 CLI 不接受它并立即关闭。

那是因为它在到达时错过了正确的语法(开头和结尾的双引号+双反斜杠)。 所以正确的语法是:

app.exe -q MP3_128 -p "C:\\test test\\" 

由于我在 WMF 中使用 Environment.GetFolderPath,因此我不知道如何将它们添加到其输出中......

如何替换 PATH 环境变量以双引号 + 反斜杠那些在 C# 中带有空格的变量?

Code:
if (Settings.Default.download == "")
{
MessageBox.Show("Be sure your download path doesnt contain any spaces!");
String path = Environment.GetFolderPath (Environment.SpecialFolder.MyMusic);
String pathDouble = path.Replace("'", "\"");
Settings.Default.download = @"""C:\\Test\DOWN LOADS""";
Settings.Default.Save();
}

这是在

Code:
if (Settings.Default.sm != "")
{
download.StartInfo.FileName = Settings.Default.sm;
string a = " -q " + qualitys + " -p " + Settings.Default.download + " " + 
info[result.SelectedIndex].link;
Debug.Write(a);
download.StartInfo.Arguments = a;
}

硬编码的默认路径集有效。 但是,当用户根据自己的喜好使用 GUI 更改该路径时,它就消失了。

C# 命令行界面 引号 环境

评论

0赞 001 6/30/2018
“cmd /s”有什么用?或。
0赞 sticky bit 6/30/2018
一个简单的呢?但也许我没有得到这个问题?path = "\"" + path + "\"";
0赞 Bas Curtiz 6/30/2018
我已经替换了 String pathDouble...路径 = “\”“ + 路径 + ”\“”;,但不工作
0赞 Bas Curtiz 6/30/2018
CMD /s 不需要,因为它已经可以到达 .exe,它只在设置下载位置时引起问题。

答:

0赞 Bas Curtiz 7/1/2018 #1

我想我编辑了错误的代码。

这段代码,我已经编辑过了,现在只需要在驱动器后面加一个双 \:

using (var folderDialog = new FolderBrowserDialog())
        {
            if (folderDialog.ShowDialog() == DialogResult.OK)
            {

                Settings.Default.download = @"""" + folderDialog.SelectedPath + @"\\""";
                Settings.Default.Save();
                txb_download_folder.Text = Settings.Default.download;
            }
        }

但是如何?

第一个 @“\” 中的简单 \ extra 会导致 \“C:\test test\\”。

评论

0赞 Bas Curtiz 7/1/2018
不知何故,不需要在first@“\”中添加额外的 \ 它现在就可以工作了!