C# WPF中如何实现双击资源管理器中的文件并打开?
解决双击文件时获取路径的问题
你的问题出在对Environment.GetCommandLineArgs()的使用上——它返回的是字符串数组,直接调用ToString()得到的只是数组的类型名称(比如System.String[]),根本不是文件路径。
正确的处理逻辑是:
- 命令行参数数组的第0个元素是程序自身的路径
- 第1个及以后的元素才是用户双击的文件路径(如果双击多个文件,会对应多个元素)
修改后的代码如下:
private void Window_Loaded(object sender, RoutedEventArgs e) { Container.Children.Clear(); Container.Children.Add(new NewFilePage()); // 获取命令行参数数组 string[] args = Environment.GetCommandLineArgs(); // 判断是否存在用户双击的文件路径参数 if (args.Length > 1) { // 取出第一个文件路径(若支持多文件打开,可遍历args[1..]逐个处理) string filePath = args[1]; new EditorWindow(filePath).Show(); // 可选:如果不需要保留初始窗口,可在此关闭当前窗口 // this.Close(); } }
额外提示:
- 可以添加文件合法性校验,比如判断
filePath对应的文件是否存在,避免传递无效路径 - 若要支持多文件批量打开,可通过循环遍历
args数组中从索引1开始的所有元素,逐个创建编辑窗口
内容的提问来源于stack exchange,提问作者TheWaterWave222
相关产品推荐
相关产品推荐

