首页 > 编程语言 >打开文件和文件夹工具类 - C#小函数类推荐

打开文件和文件夹工具类 - C#小函数类推荐

时间:2024-10-19 09:21:26浏览次数:9  
标签:ProcessStartInfo psi 函数 C# process 文件夹 ex Process new

       此文记录的是打开文件和文件夹工具类。

/***

    打开文件和文件夹工具类

    Austin Liu 刘恒辉
    Project Manager and Software Designer

    E-Mail: [email protected]
    Blog:   http://lzhdim.cnblogs.com
    Date:   2024-01-15 15:18:00

***/

namespace Lzhdim.LPF.Utility
{
    using System;
    using System.Diagnostics;

    /// <summary>
    /// 打开文件和文件夹工具类
    /// </summary>
    public static class OpenFolderAndFileUtil
    {
        /// <summary>
        /// 打开文件
        /// </summary>
        /// <param name="filePathAndName">文件的路径和名称(比如:C:\Users\Administrator\test.txt)</param>
        /// <param name="isWaitFileClose">是否等待文件关闭(true:表示等待)</param>
        public static void OpenFile(string filePathAndName, bool isWaitFileClose = true)
        {
            Process process = new Process();
            ProcessStartInfo psi = new ProcessStartInfo(filePathAndName);
            process.StartInfo = psi;

            process.StartInfo.UseShellExecute = true;

            try
            {
                process.Start();

                //等待打开的程序关闭
                if (isWaitFileClose)
                {
                    process.WaitForExit();
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                process?.Close();
            }
        }

        /// <summary>
        /// 打开目录
        /// </summary>
        /// <param name="folderPath">目录路径(比如:C:\Users\Administrator\)</param>
        public static void OpenFolder(string folderPath)
        {
            if (string.IsNullOrEmpty(folderPath)) return;

            Process process = new Process();
            ProcessStartInfo psi = new ProcessStartInfo("Explorer.exe");
            psi.Arguments = folderPath;
            process.StartInfo = psi;

            try
            {
                process.Start();
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                process?.Close();
            }
        }

        /// <summary>
        /// 打开目录且选中文件
        /// </summary>
        /// <param name="filePathAndName">文件的路径和名称(比如:C:\Users\Administrator\test.txt)</param>
        public static void OpenFolderAndSelectedFile(string filePathAndName)
        {
            if (string.IsNullOrEmpty(filePathAndName)) return;

            Process process = new Process();
            ProcessStartInfo psi = new ProcessStartInfo("Explorer.exe");
            psi.Arguments = "/e,/select," + filePathAndName;
            process.StartInfo = psi;

            //process.StartInfo.UseShellExecute = true;
            try
            {
                process.Start();
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                process?.Close();
            }
        }
    }
}

 

标签:ProcessStartInfo,psi,函数,C#,process,文件夹,ex,Process,new
From: https://www.cnblogs.com/lzhdim/p/18340700

相关文章

  • 从蹲在碎片前沉思到SpaceX“筷子回收”,马斯克用20年把梦想照进现实!
    2006年,一片荒芜的沙漠中,火箭残骸散落一地。伊隆·马斯克蹲在爆炸后的碎片旁,眼中满是失望和沮丧。这个场景成为了SpaceX发展历程中的一个重要转折点。SpaceX的故事始于2002年,马斯克带着火星移民的梦想创立了这家公司。早期的SpaceX面临着巨大的挑战。连续三......
  • R语言机器学习算法实战系列(五)GBM算法+SHAP值 (Gradient Boosting Machines)
    禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者!文章目录介绍教程下载数据加载R包导入数据数据预处理数据描述数据切割调节参数构建模型预测测试数据评估模型模型准确性混淆矩阵模型评估指标ROCCurvePRCCurve特......
  • oracle 11g常用运维命令总结
    一、日常巡检命令1、检查Oracle实例状态SQL>setpages600lines600SQL>selectinstance_name,host_name,startup_time,status,database_statusfromv$instance;说明:“STATUS”表示Oracle当前的实例状态,必须为“OPEN”;“DATABASE_STATUS”表示Oracle当前数据库的状......
  • 集合论(ZFC)之 阿列夫数(Alephs)
    直观感受(Intuition)及核心理念(CoreIdea)        阿列夫数(Alephs)主要是为了衡量良序(well-ordered)的无限集(infiniteset)与超限集(transfiniteset)的大小(无限集中含有无限个元素,而超限集包含无限个元素,且其中有无限集作为其元素),例如自然数集合大小为第一个阿列夫数,记,aleph......
  • 集合论(ZFC)之序型(Order Type)
    直观感受(Intuition)及核心理念(CoreIdea)             序型(OrderType)的概念,用以描述了集合的结构是否相同。相同结构意味着,对比的两集合,其元素个数,及元素间的关系,都一样。这里,与基数的概念很相似,但基数不考虑元素间的关系,只考虑元素的个数。核心理念形式化(For......
  • Java最全面试题->Java基础面试题->JavaWeb面试题->Cookie/Session面试题
    Cookie/Session下边是我自己整理的面试题,基本已经很全面了,想要的可以私信我,我会不定期去更新思维导图哪里不会点哪里什么是Cookie?HTTPCookie(也叫WebCookie或浏览器Cookie)是服务器发送到用户浏览器并保存在本地的一小块数据,它会在浏览器下次向同一服务器再发起请求......
  • 出现WrongArgumentException: Malformed database URL, failed to parse the connecti
    目录1.问题所示2.原理分析3.解决方法1.问题所示编辑数据源的时候,后端出现如下BugThelastpacketsentsuccessfullytotheserverwas0millisecondsago.Thedriverhasnotreceivedanypacketsfromtheserver.com.mysql.cj.jdbc.exceptions.Com......
  • 详细分析 Spring CORS 配置 (附Demo)
    目录前言1.基本知识2.Demo前言基本的Java知识推荐阅读:java框架零基础从入门到精通的学习路线附开源项目面经等(超全)【Java项目】实战CRUD的功能整理(持续更新)原先写过一篇跨域的基本知识:Springboot处理跨域的方式(附Demo)1.基本知识CorsRegistry是Spring框架......
  • C#asp,net病历管理系统 毕业设计-附源码42200
                                目 录摘要1绪论1.1研究背景1.2研究意义1.3B/S体系结构介绍1.4ASP.NET框架介绍2 病历管理系统分析2.1可行性分析2.2系统流程分析2.2.1数据增加流程2.2.2数......
  • Tomcat10JdbcPoolDemo
    packagecom.renguanyu.demo;importjava.sql.Connection;importjava.sql.ResultSet;importjava.sql.Statement;importorg.apache.tomcat.jdbc.pool.DataSource;importorg.apache.tomcat.jdbc.pool.PoolProperties;publicclassTomcat10JdbcPoolDemo{ public......