繁体   English   中英

我该如何替换PATH环境变量以在C#中使用空格将那些变量加双引号和反斜杠?

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

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

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

当路径中有空格时,CLI将数据转发到该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根据自己的喜好更改该路径时,它就消失了。

我认为我在编辑错误的代码。

我已经编辑了以下代码,现在只需要在驱动器后加一个\\即可:

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 \\\\”。

暂无
暂无

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

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