打开文件练习

来源:互联网 发布:mysql中if exists用法 编辑:程序博客网 时间:2024/06/03 08:21
  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)        { }    }}
0 0
原创粉丝点击