Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 获取用户打开应用程序时使用的文件_C#_Wpf - Fatal编程技术网

C# 获取用户打开应用程序时使用的文件

C# 获取用户打开应用程序时使用的文件,c#,wpf,C#,Wpf,我有一个WPF应用程序。我将文件扩展名与我的应用程序关联。现在,我可以通过双击具有此扩展名的文件来打开应用程序 我的问题是,我不知道如何让用户打开文件 以下操作不起作用: Environment.GetCommandLineArgs()仅包含1个应用程序名称的元素 private void Application_Startup(object sender, StartupEventArgs e) { //e.Args is empty } 在您的App.xaml.cs中,启动事件的文

我有一个WPF应用程序。我将文件扩展名与我的应用程序关联。现在,我可以通过双击具有此扩展名的文件来打开应用程序

我的问题是,我不知道如何让用户打开文件

以下操作不起作用:

Environment.GetCommandLineArgs()
仅包含1个应用程序名称的元素

private void Application_Startup(object sender, StartupEventArgs e)
{
    //e.Args is empty
}

在您的App.xaml.cs中,启动事件的文件覆盖处理程序:

public partial class App : Application
{
    protected override void OnStartup(StartupEventArgs e)
    {
        e.Args[0] // here's your file name
        base.OnStartup(e);
    }
}
您可以从文件名的启动参数中获取文件名的值。您可能还需要检查您的关联,因为您所拥有的应该可以工作,并且您应该能够作为第二个参数访问您的文件名


我解决了这个问题。我可以通过以下方式获取文件:

fname = AppDomain.CurrentDomain.SetupInformation
        .ActivationArguments.ActivationData[0];
Uri uri = new Uri(fname);
fname = uri.LocalPath;

您是否检查了不适用于我的,e.Args为空。我可以通过另一种方式获取:AppDomain.CurrentDomain.SetupInformation.ActivationArguments.ActivationData[0]