簡體   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