FileDialog选择目标文件?

时间:2016-02-16 11:29:58

标签: c# winforms visual-studio

原来如此! 用户右键单击其计算机上的任何文件,并自定义选项打开我的程序,在Form_load上我要求用户选择一个文件,但我希望该文件是他们打开程序的文件。

 private void Form1_Load(object sender, System.EventArgs e)
        {
            DialogResult result = openFileDialog1.ShowDialog();
            if (result == DialogResult.OK)
            {
                source = openFileDialog1.FileName;
            }
            else
            {
                Application.Exit();
            }
        }

我怎么能实现这个目标?

2 个答案:

答案 0 :(得分:1)

当您的程序与任何文件扩展名相关联时,Windows将通过命令行参数传递文件名,以便您可以检查它们:

private void Form1_Load(object sender, System.EventArgs e) {
  String[] data = Environment.GetCommandLineArgs();

  // 0th parameter is executable itself, we want the 1st parameter     
  if (data.Length > 1)
    openFileDialog1.FileName = data[1];

  if (openFileDialog1.ShowDialog() == DialogResult.OK) {
    source = openFileDialog1.FileName;
  }
  else
    Application.Exit();
}

答案 1 :(得分:0)

如果您询问'发送给' Windows上下文菜单中的菜单 - >您应该将应用程序放在特殊文件夹中,如下所述:How-to geek: Customize the Send To Menu in Windows 10, 8, 7, or Vista,您将收到完整路径,包括文件名作为函数argsMain()的第一个参数