【问题标题】:How do I add open and read text files associated with my WinForm?如何添加与我的 WinForm 关联的打开和读取文本文件?
【发布时间】:2014-09-19 17:50:13
【问题描述】:

所以我的 winform 与自定义文件格式 (.abc) 相关联。我如何拥有它,以便在单击 text.abc 时,winform 运行并获取 text.abc 的内容。

它只是作为参数传入吗?

【问题讨论】:

  • 如果我理解正确,您需要两件事:1. 将 .abc 文件与您在 Windows 中的程序相关联;2. 知道如何在您的程序启动后检索文件名。我对吗?还是只是第二点?
  • 更多的是第二部分。单击文件并启动相关程序后,该程序如何获取文件的信息?很抱歉有歧义。

标签: c# windows winforms file


【解决方案1】:

首先你需要注册你的自定义文件扩展名,看看这个帖子:

Associate File Extension with Application

然后在您的 Windows 应用程序中,您可以读取如下命令参数:

    private void Form1_Load(object sender, EventArgs e)
    {
        foreach (var item in Environment.GetCommandLineArgs())
        {
            Debug.WriteLine(item);
        }
    }

【讨论】:

  • 谢谢!这正是我需要知道的。
【解决方案2】:

如果您已为特定扩展名正确注册了应用程序,那么如果用户双击具有该扩展名的文件,SO 将调用您的应用程序并传递带有双击文件名的命令行参数。 该框架还使用传递的命令行初始化Environment.CommandLine 属性。 您可以在程序中的任何地方检索此属性或使用Environment.GetCommandLineArgs 数组。请记住,该数组的第一个元素与您的程序名称相同,而参数从第二个元素开始。

您应该使用控制台应用程序中的参数编写主入口点

static void Main(string[] args)
{
    if(args.Length > 0)
    {
        // command line passed 
        string fileToProcess = args[0];
        if(Path.GetExtension(fileToProcess) == ".abc")
        {
           // Whatever
        }

    }
}

【讨论】:

  • 完美!这正是我想知道的。感谢您的回答,但我将不得不给 Gregor 一个“接受的答案”,因为他以大约 30 秒的优势击败了您。
猜你喜欢
  • 1970-01-01
  • 2020-03-29
  • 1970-01-01
  • 2018-11-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-08
相关资源
最近更新 更多