繁体   English   中英

C#如何获取网络文件的完整路径?

[英]C# How to get full path of network file?

右键单击pdf文件后,从上下文菜单中运行该程序,它只是将“ \\ CALL OFF”添加到所选文件中,即使在有空格的情况下,程序在本地也可以正常运行。 当在我的nas上的文件中运行时,其中路径包含空格,GetCommandLineArgs的输出在第一个空格处停止。

public partial class Form1 : Form
{
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            string[] args = System.Environment.GetCommandLineArgs();
            textBox1.Text = args[1];
        }

        private void button2_Click(object sender, EventArgs e)
        {
            ProcessStartInfo start = new ProcessStartInfo();
            start.Arguments = "-add-text \"/ CALL OFF\" -font \"Helvetica-Bold\" -font-size 14 -pos-left \"194 776\" " + textBox1.Text + " -o out.pdf";
            start.FileName = "cpdf";
            Process.Start(start);
        }
}

字符串加入所有的命令行参数重新走到一起,利用空间分隔成一个字符串,并用其作为论据。 start.Arguments使用时,还需要在textBox1.Text周围添加双引号,以确保将其作为一个接收:

    public partial class Form1 : Form
    {
            public Form1()
            {
                InitializeComponent();
            }

            private void Form1_Load(object sender, EventArgs e)
            {
                string[] args = System.Environment.GetCommandLineArgs().Skip(1).ToArray();
                textBox1.Text = String.Join(" ", args);
            }

            private void button2_Click(object sender, EventArgs e)
            {
                ProcessStartInfo start = new ProcessStartInfo();
                start.Arguments = "-add-text \"/ CALL OFF\" -font \"Helvetica-Bold\" -font-size 14 -pos-left \"194 776\" "
                                  + "\"" + textBox1.Text + "\"" + " -o out.pdf";
                start.FileName = "cpdf";
                Process.Start(start);
            }
    }

您需要将路径名用引号引起来,并添加\\"

string quoted = "\"" + textBox1.Text + "\"";

要得到:

start.Arguments = "-add-text \"/ CALL OFF\" -font \"Helvetica-Bold\" -font-size 14 -pos-left \"194 776\" \"" + textBox1.Text + "\" -o out.pdf";

如果要将其作为命令行参数传递给程序,则也需要在其中引用它:

myExe -file "Long path with spaces\file.pdf"

暂无
暂无

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

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