2017-07-27 60 views
2

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

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

下不工作:

Environment.GetCommandLineArgs()只包含与应用程序的名称1元。

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

你检查[这](https://stackoverflow.com/a/28005158/6611487) –

回答

0

我解决了这个问题。我可以得到该文件的方式如下:

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

在您启动事件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); 
    } 
} 

你可以抓住从它的启动参数文件名的值。您可能还需要检查,因为你有什么应该工作的关联,你应该能够访问你的文件名作为第二PARAM

dubugger-with-resuts

+0

那不是为我工作,e.Args是空的。我能够以另一种方式获得:AppDomain.CurrentDomain.SetupInformation.ActivationArguments.ActivationData [0] – jannagy02

相关问题