Как я могу запустить папку, имя которой содержит запятую, используя ProcessStartInfo в C #? - PullRequest
0 голосов
/ 08 марта 2011

У меня есть приложение, которое запрашивает базу данных о местонахождении вложенной папки, используемой для задачи, и открывает эту папку (используя класс ProcessStartInfo для запуска explorer.exe и передачи имени папки в качестве аргумента).

Это работает нормально, за исключением нескольких папок, которые содержат запятые (и, к сожалению, их много!)

Скажем, для папки с именем C:\this,folder\ она пытается запустить "папка».Как я могу заставить его трактовать запятую как дословно?

Пример кода:

public void LaunchExplorer() {
        ProcessStartInfo explorer = new ProcessStartInfo();             

        string windir = Environment.GetEnvironmentVariable("WINDIR");
        System.Diagnostics.Process prc = new System.Diagnostics.Process();
        prc.StartInfo.FileName = windir + @"\explorer.exe ";
        prc.StartInfo.Arguments = @"c:\this,folder";
        prc.StartInfo.UseShellExecute = false;

        try                                       
        {                
            prc.Start();
        }

        catch
        {
            MessageBox.Show("cannot open folder " + prc.StartInfo.Arguments);
        }
}

Ответы [ 2 ]

3 голосов
/ 08 марта 2011

Вы пытались заключить имя папки в кавычки, как это?

prc.StartInfo.Arguments = "\"c:\\this,folder\"";
0 голосов
/ 08 марта 2011
prc.StartInfo.Arguments = "\"c:\\this,folder\"";

сделает свое дело

...