访问Windows窗体应用程序中以自定义文件类型保存的数据

本文关键字:类型 文件 保存 数据 自定义 Windows 窗体 应用程序 访问 | 更新日期: 2023-09-27 18:00:44

我有一个设置了自定义文件扩展名的windows窗体应用程序。我可以将数据保存到我的文件中,当我从Windows双击保存的文件时,它会启动我的应用程序。

然而,我还无法获得我点击以读取其数据的文件的名称。一切似乎都告诉我args[0]应该是exe(正如我所看到的),args[1]应该是下一个参数(可能是我要找的;我点击的文件名),但args除外。长度总是只有1,无论我是直接打开exe还是点击启动exe的文本文件,我从来没有点击过的文件名。

编辑(已解决;ish):好的,最后确定一个更具体的问题。我的应用程序是用ClickOnce部署的,我通过windows窗体应用程序属性设置了所有文件关联。当我右键单击并查看保存的自定义文件的属性时,它显示"使用:ClickOnce应用程序部署支持库打开",而不是我的应用程序名称。如果我将默认值更改为使用.exe打开,那么神奇的是,它有正确的arg值(exe,后面跟着我单击的文件名)。

访问Windows窗体应用程序中以自定义文件类型保存的数据

您不能直接访问ClickOnce应用程序的命令行参数。为了找到它们,我使用了以下内容,从这里修改了一点:

System.Runtime.Hosting.ActivationArguments args = AppDomain.CurrentDomain.SetupInformation.ActivationArguments;
if (args.ActivationData != null)
{
    foreach (string commandLineFile in AppDomain.CurrentDomain.SetupInformation.ActivationArguments.ActivationData)
    {
        MessageBox.Show(string.Format("Command Line File: {0}", commandLineFile));
    }
}

这给了我点击的文件名。好哇。