【问题标题】:How to open a file using a specified third party program in C#?如何在 C# 中使用指定的第三方程序打开文件?
【发布时间】:2013-01-26 02:07:47
【问题描述】:

所以我要做的是使用名为超比较。我在 Visual Studio 2010(Express 版)的 C# 网站项目中工作。我在这里看到了如何使用不同的程序打开文件:Open a file with Notepad in C#

问题是,这只允许您使用该文件类型的默认程序打开它。但我想在指定的程序中打开它。例如,文本文件应该在 UltraCompare 中打开,而不是在记事本中打开。这是执行此操作的代码:

string textBoxContents1 = TextBox1.Text;
Process.Start(textBoxContents1);

网络表单上的文本框接受一个字符串,用户在其中键入文件的完整路径(不是我所知道的最人性化的设计,但我不确定如何让他们浏览 文件夹 在 asp.NET 中使用 GUI 界面)。然后将该文件传递给 Process.Start() 方法,该方法使用该文件类型的默认程序打开它。

有没有办法修改它以使用 UltraCompare 打开它?

【问题讨论】:

    标签: c# asp.net process


    【解决方案1】:

    您可以指定要在其中打开文件的程序:

    Process.Start("yourprogram.exe", textBoxContents1);
    

    更新

    要在 Ultracompare 中打开两个文件,您可能会这样做:

    Process.Start("yourprogram.exe", "file1.txt file2.txt");
    

    请记住,Process.Start 方法的第二个参数是传递给程序的参数。

    我说这可能会起作用,因为我认为 Ultracompare 很可能需要 2 个参数,但情况可能并非如此。

    【讨论】:

    • 太棒了!我之前尝试过这样做,但没有意识到您必须放置程序的完整文件路径。我只是输入“UltraCompare”并收到错误。但是当我进入“C:\Program Files\IDM Computer Solutions\UltraCompare\uc.exe”时它可以工作。谢谢阿德里安! :)
    • 嗯其实有问题。 UltraCompare 允许您同时打开两个文件并并排查看它们。但是使用这个 Process.Start() 方法会打开两个单独的 UC 实例,每个文件一个。你知道有没有办法在同一个窗口中打开这两个文件?
    • 是的,行得通!但只有当我对文件名进行硬编码时......如果我必须用每个新文件手动更改它们,这会违背程序的目的。有没有办法使用 textBoxContents 值动态地做到这一点?我尝试将它们放在引号中,但没有,但似乎都不起作用:(
    • @user1985189 老兄,这只是一个例子。从变量中组装字符串
    • 这是你需要的:Process.Start("yourprogram.exe", textBoxContents1 + " " + textBoxContents2)。您在字符串中传递变量的名称。通过连接(这是我刚刚向您展示的),您正在使用变量内容组装字符串
    【解决方案2】:

    快速问题:您是否要为客户端计算机执行此操作?希望不是 我猜它会查看 PATH 变量以查找您的 exe

    【讨论】:

    • 您的意思是这些文件位于我的客户端计算机上吗?与服务器上的对比?抱歉,我是 coop 学生,不太清楚你的意思...
    • Process.start 在服务器中打开程序。如果您托管网站并在同一台机器上而不是在其他机器上使用它,那将不是问题
    • 这是否意味着如果其他人在他们的机器上运行我的程序,它就不会工作?因为那会是个问题……
    • 如果它是机器 A 中的托管发言,并且有人从机器 B 浏览网站,这将不起作用(因为进程在机器 A 中启动,而机器 B 用户无法查看正在发生的事情在机器 A 上。看看:- stackoverflow.com/questions/7204742/…
    • 嗯,好的。嗯,不确定我是否在托管它。有没有办法检查或者通常默认创建.NET项目的人是主机?对不起,如果这是一个愚蠢的问题,但我在这一切都是一个大菜鸟..
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多