• 打开文件练习


      using System;
    using System.Collections.Generic;
    using System.Diagnostics;
    using System.IO;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace 打开文件练习
    {
        class Program
        {
            static void Main(string[] args)
            {
                Console.WriteLine("请输入要打开的文件所在的路径");
                string filePath = Console.ReadLine();
                Console.WriteLine("请输入要打开的文件的名字");
                string fileName = Console.ReadLine();
    
                //通过简单工厂设计模式返回父类
    
                BaseFile bf = GetFile(filePath, fileName);
                if (bf != null)
                {
                    bf.OpenFile();
                }
                Console.ReadKey();
            }
    
            static BaseFile GetFile(string filePath,string fileName)
            {
                BaseFile bf = null;
                string strExtension = Path.GetExtension(fileName);//3.txt
                switch (strExtension)
                { 
                    case ".txt":
                        bf = new TxtFile(filePath, fileName);
                        break;
                    case ".avi":
                        bf = new AviFile(filePath, fileName);
                        break;
                    case ".mp4":
                        bf = new MP4File(filePath, fileName);
                        break;
                }
                return bf;
            }
    
        }
    
        class BaseFile
        { 
            //字段、属性、构造函数、函数、索引器
            private string _filePath;
            public string FilePath//ctrl+R+E 自动封装属性
            {
                get { return _filePath; }
                set { _filePath = value; }
            }
    
            //自动属性 prop+两下tab 自动属性,隐形的私有字段
            public string FileName { get; set; }
    
            public BaseFile(string filePath, string fileName)//设计的父类类型文件,用于继承
            {
                this.FilePath = filePath;
                this.FileName = fileName;
            }
    
          
            //设计一个函数  用来打开指定的文件
            public void OpenFile()
            {
                ProcessStartInfo psi = new ProcessStartInfo(this.FilePath + "\" + this.FileName);//2个加起来是全路径文件名
                Process pro = new Process();
                pro.StartInfo = psi;
                pro.Start();
            }
        }
    
        class TxtFile : BaseFile
        { 
            //因为子类会默认调用父类无参数的构造函数
    
            public TxtFile(string filePath, string fileName)
                : base(filePath, fileName)
            { }
        }
    
    
        class MP4File : BaseFile
        {
            public MP4File(string filePath, string fileName)
                : base(filePath, fileName)
            { }
        }
    
        class AviFile : BaseFile
        {
            public AviFile(string filePath, string fileName)
                : base(filePath, fileName)
            { }
        }
    }
  • 相关阅读:
    我的博客园的博客开通啦
    设置cookie
    JavaScript自动提示
    补码
    vim快捷键
    JavaScript获取URL参数
    Linux根目录下子目录的功能
    JavaScript分页栏链接转变算法
    可输可选可自动提示,还可增加一个!
    VS2008启动调试,出现“ 已经找到网站 正在等待回应”
  • 原文地址:https://www.cnblogs.com/blacop/p/6000251.html
Copyright © 2020-2023  润新知