C# 打开指定路径下文件

简介: /// <summary> /// 打开指定路径下文件,比如:Word、Excel、Dll、图片等都可以(前提是你已经安装打开程序的对应软件) /// </summary> /// <param name="NewFileName">eg:D:\Test\模版8.doc</param&
        /// <summary>
        /// 打开指定路径下文件,比如:Word、Excel、Dll、图片等都可以(前提是你已经安装打开程序的对应软件)
        /// </summary>
        /// <param name="NewFileName">eg:D:\Test\模版8.doc</param>
        /// <param name="NewFileName">eg:D:\Test\模版8.doc</param>
        private void OpenFile(string NewFileName)
        {
            Process process = new Process();
            ProcessStartInfo processStartInfo = new ProcessStartInfo(NewFileName);
            process.StartInfo = processStartInfo;
			# region 下面这段被注释掉代码(可以用来全屏打开代码)
			////建立新的系统进程    
            //System.Diagnostics.Process process = new System.Diagnostics.Process();
            ////设置文件名,此处为图片的真实路径+文件名(需要有后缀)    
            //process.StartInfo.FileName = NewFileName;
            ////此为关键部分。设置进程运行参数,此时为最大化窗口显示图片。    
            //process.StartInfo.Arguments = "rundll32.exe C://WINDOWS//system32//shimgvw.dll,ImageView_Fullscreen";
            //// 此项为是否使用Shell执行程序,因系统默认为true,此项也可不设,但若设置必须为true    
            //process.StartInfo.UseShellExecute = true;
			#endregion
            try
            {
                process.Start();
                try
                {
                    // process.WaitForExit();
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                try
                {
                    if (process != null)
                    {
                        process.Close();
                        process = null;
                    }
                }
                catch { }
            }
        }

今天,测试的时候,不知道谁在

process.StartInfo = processStartInfo;
这个句话的后面,添加了这么一句话:

process.StartInfo.UseShellExecute = false;

一开始也没注意,然后一直报下面这个错误:

The specified executable is not a validapplication for this OS platform.

解释:

        ProcessStartInfo.UseShellExecute 属性:获取或设置一个值,该值指示是否使用操作系统外壳程序启动进程。

属性值:
        若要在启动进程时使用外壳程序,则为 true;否则,直接从可执行文件创建进程。默认为 true。将属性设置为 false 能够重定向输入流、输出流和错误流。否则不行。
        使用操作系统外壳程序启动进程时,可以使用 Process 组件启动任何文档(可以是与可执行文件关联的、具有默认打开操作的任何注册文件类型),并对该文件执行操作(如打印)。如果 UseShellExecute 为 false,则只能使用 Process组件启动可执行文件。







相关文章
|
26天前
|
XML C# 数据格式
使用C#操作XML文件
使用C#操作XML文件
11 0
|
29天前
|
C#
C# 文件操作(全部) 追加、拷贝、删除、移动文件、创建目录
C# 文件操作(全部) 追加、拷贝、删除、移动文件、创建目录
21 0
|
3月前
|
C#
C#读取html文件
C#读取html文件
28 3
|
3月前
|
C# 开发者
C# 10.0中的文件范围命名空间:简化代码组织的新方式
【1月更文挑战第18天】C# 10.0引入了文件范围的命名空间,这是一种新的语法糖,用于更简洁地组织和管理代码。文件范围命名空间允许开发者在每个文件的基础上定义命名空间,而无需显式使用花括号包裹整个文件内容。本文将深入探讨文件范围命名空间的工作原理、使用场景以及它们为C#开发者带来的便利。
|
5月前
|
C#
Visual Studio C# CS0006 C# 未能找到元数据文件
Visual Studio C# CS0006 C# 未能找到元数据文件
62 0
Visual Studio C# CS0006 C# 未能找到元数据文件
|
6月前
|
开发框架 .NET C#
利用WinDbg分析C#程序产生的转储文件
利用WinDbg分析C#程序产生的转储文件
|
4月前
|
IDE C# 开发工具
C# | 多线程批量下载文件(创建N个线程同时批量下载文件,只需要几行代码而已)
批量下载文件时使用多线程可以有效缩短完成时间,本文将讲解如何使用C#+CodePlus扩展库快速完成多线程的文件下载。 大部分代码由IDE自动生成,需要我们自己编写的代码正好**10行**。也就是说,只需要10分钟,就可以手撸一个多线程的批量下载器。
77 0
C# | 多线程批量下载文件(创建N个线程同时批量下载文件,只需要几行代码而已)
|
22天前
|
安全 数据处理 C#
C# Post数据或文件到指定的服务器进行接收
C# Post数据或文件到指定的服务器进行接收
|
22天前
|
C# 开发工具 数据安全/隐私保护
C#实现基于Word保护性模板文件的修改
C#实现基于Word保护性模板文件的修改
|
2月前
|
C#
C# Winform 选择文件夹和选择文件
C# Winform 选择文件夹和选择文件
43 0