字符串中的文件目录

时间:2019-01-08 15:06:45

标签: c#

我的C#代码有点问题。概念:从FileDialog中选择文件后,我想将文件的目录写入字符串,然后在此字符串的基础上,我想从该路径运行文件,但出现错误“该路径不是合法格式”。有人知道如何解决吗?

    private void button2_Click_2(object sender, EventArgs e)
    {
        var FD = new System.Windows.Forms.OpenFileDialog();
        if (FD.ShowDialog() == System.Windows.Forms.DialogResult.OK)
        {
            string fileToOpen = FD.FileName;

            System.IO.FileInfo File = new System.IO.FileInfo(FD.FileName);
            label8.Text = fileToOpen;

            string sciezka = label8.Text;
            label9.Text = sciezka; 
        }
    }

    private void button3_Click_1(object sender, EventArgs e)
    {
        if (radioButton6.Checked == false)
        {
            MessageBox.Show("Proszę wybrać opcję 'Sterowanie klawiaturą.", "Uwaga!",
            MessageBoxButtons.OK, MessageBoxIcon.Warning);
        }
        else if (label8.Text == "")
        {
            MessageBox.Show("Proszę wybrać plik do sterowania robotem.", "Uwaga!",
            MessageBoxButtons.OK, MessageBoxIcon.Warning);
        }

        else
        {
            var startInfo = new ProcessStartInfo();

            startInfo.WorkingDirectory = Path.GetFullPath(sciezka);

            Process proc = Process.Start(startInfo);
        }
    }

2 个答案:

答案 0 :(得分:4)

sciezka是您的文件名,您将使用以下命令获取其完整路径:

Path.GetFullPath(sciezka)

但是,startInfo.WorkingDirectory需要目录,而不是文件路径。

ProcessStartInfo.WorkingDirectory

  

当UseShellExecute属性为false时,获取或设置工作   要启动的进程的目录。当UseShellExecute为true时,   获取或设置包含要启动的进程的目录。

答案 1 :(得分:-1)

startInfo.WorkingDirectory = Path.GetFullPath(sciezka);
startInfo.FileName = sciezka;
Process proc = Process.Start(startInfo);