使用进程打开指定的文件

模拟磁盘打开文件

class Program
{
static void Main(string[] args)
{
while(true)
{
Console.WriteLine("请选择要进入的磁盘");
string path=Console.ReadLine();//D:\
Console.WriteLine("请选择要打开的文件");
string fileName=Console.ReadLine();//1.txt
//文件的全路径:path+fileName
FileFather ff=GetFile(fileName,path+fileName);
ff.OpenFile();
Console.ReadKey();
}
}
}
public static FileFather GetFile(string fileName,string fullPath)
{
string extension=Path.GetExtension(fileName);
FileFather ff=null;
switch(extension)
{
case ".txt":ff=new TxtPath(fullPath);
break;
case ".jpg":ff=new JpgPath(fullPath);
break;
case ".wmv":ff=new WmvPath(fullPath);
break;
}
}
public abstract class FileFather
{
public string fullPath
{
get;
set;
}
public FileFather(string fullPath)
{
this.fullPath=fullPath;
}
public abstract void OpenFile();
}
public class TxtPath:FileFather
{
public TxtPath(string fullPath):base(fullPath)
{ }
public override void OpenFile()
{
ProcessStartInfo psi=new ProcessStartInfo(this.fileName);
Process p=new Process();
p.StartInfo=psi;
p.Start();
}
}
public class JpgPath:FileFather
{
public JpgPath(string fullPath):base(fullPath)
{ }
public override void OpenFile()
{
ProcessStartInfo psi=new ProcessStartInfo(this.fileName);
Process p=new Process();
p.StartInfo=psi;
p.Start();
}
}
public class WmvPath:FileFather
{
public WmvPath(string fullPath):base(fullPath)
{ }
public override void OpenFile()
{
ProcessStartInfo psi=new ProcessStartInfo(this.fileName);
Process p=new Process();
p.StartInfo=psi;
p.Start();
}
}

c#基础学习(0628)之使用进程打开指定的文件、模拟磁盘打开文件的更多相关文章

  1. Qt 打开指定网站/系统文件夹

     本文转载自:http://blog.csdn.net/robertkun/article/details/7802977和http://hi.baidu.com/xyhouse/item/ccf ...

  2. MongoDB实战开发 【零基础学习,附完整Asp.net示例】

    MongoDB实战开发 [零基础学习,附完整Asp.net示例] 阅读目录 开始 下载MongoDB,并启动它 在C#使用MongoDB 重构(简化)代码 使用MongoDB的客户端查看数据 使用Mo ...

  3. dubbo基础学习总结

    Dubbo基本原理机制 分布式服务框架: –高性能和透明化的RPC远程服务调用方案 –SOA服务治理方案 -Apache MINA 框架基于Reactor模型通信框架,基于tcp长连接 Dubbo缺省 ...

  4. 鸟哥Linux私房菜基础学习篇学习笔记2

    鸟哥Linux私房菜基础学习篇学习笔记2 第九章 文件与文件系统的压缩打包: Linux下的扩展名没有什么特殊的意义,仅为了方便记忆. 压缩文件的扩展名一般为: *.tar, *.tar.gz, *. ...

  5. linux基础学习之软件安装以及常用命令

    linux基础学习之软件安装以及常用命令 调用中央仓库: yum install wget 然后下载nodejs: wget https://nodejs.org/dist/v10.14.2/node ...

  6. Java基础学习(一)---Java初识

    一.Java介绍 关于Java的诞生和发展网上比较多,在此就不再赘述了,可以参考http://i.cnblogs.com/EditArticles.aspx?postid=4050233. 1.1 J ...

  7. Nginx基础学习

    参考博客: http://www.2cto.com/os/201212/176520.html http://os.51cto.com/art/201111/304611.htm http://www ...

  8. C#RabbitMQ基础学习笔记

    RabbitMQ基础学习笔记(C#代码示例) 一.定义: MQ是MessageQueue,消息队列的简称(是流行的开源消息队列系统,利用erlang语言开发).MQ是一种应用程序对应用程序的通信方法. ...

  9. 尚学堂JAVA基础学习笔记

    目录 尚学堂JAVA基础学习笔记 写在前面 第1章 JAVA入门 第2章 数据类型和运算符 第3章 控制语句 第4章 Java面向对象基础 1. 面向对象基础 2. 面向对象的内存分析 3. 构造方法 ...

随机推荐

  1. 创建/读取/删除Session对象

    //创建Session对象 Session["userName"] = "顾德博";//保存,这里可以存储任意类型的数据,包括对象.集合等 Session.Ti ...

  2. wpf数据绑定 - StringFormat的妙用

    写在前面 WPF中常常有这样的情况:需要在UI上显示一些信息,比如显示一张图片的信息,信息结构是: 图片名:Xxx 图片尺寸:Xxx 而其中的 Xxx 通常通过数据绑定来获得, Xxx 前面的内容是需 ...

  3. Backbone学习笔记 - Collection及Router篇

    Collection Collection可以看成是Model的集合.以下是一个集合的例子: var Song = Backbone.Model.extend({ defaults: { name: ...

  4. css小点心

    本文由作者邹欣华授权网易云社区发布. 有一个在邮件中用饼图直观地显示用户的各项消费比例的需求.邮箱中不能用js,纯css实现饼图,只能通过后端模版渲染数据,所以数据越少越简单越好. 想到css3的tr ...

  5. Golang channel 的基本使用方法

    package main import ( "fmt" "learner/Add" "time" ) //a. 普通类型,普通变量保存的就是 ...

  6. sublime-text-how-to-jump-to-file-from-find-results-using-keyboard

    http://209.116.186.231/#newwindow=1&q=sublime+text+find+results+jump http://stackoverflow.com/qu ...

  7. nodejs实现请求代理

    通常我们常用的请求方法只有GET.POST.PUT和DELETE,所以在此只介绍这四种和文件上传的代理方式 在此我们使用request.js第三方模块实现 GET(DELETE同GET,将reques ...

  8. 聊聊jvm系列

    http://blog.csdn.net/column/details/talk-about-jvm.html

  9. Lora通信解决方案对比

    欢迎大家进群交流分享:QQ群:773082801

  10. Python小白学习之路(二十二)—【生成器】

    一.什么是生成器? 生成器可以理解成是一种数据类型,特殊地是生成器可以自动实现迭代器协议其他的数据类型需要调用自己内置的__iter__方法所以换种说法,生成器就是可迭代对象 !回忆:很重要的迭代器协 ...