【已解决】C#中调用资源管理器(Explorer.exe)打开指定文件夹 + 并选中指定文件 + 调用(系统默认的播放类)软件(如WMP)打开(播放歌曲等)文件
2014-02-23 12:26
639 查看
【问题】
折腾:
C#中如何在右下角添加提示窗口,用于显示打开文件和文件夹
的过程中,需要实现,点击对应LinkLabel后,调用资源管理器,打开对应的文件夹。
【解决过程】
1.找了下,参考:
C#打开文件夹
C#用资源管理器打开指定文件夹
去添加代码:
?
运行一下,试试效果,发现是可以调用资源管理器打开文件夹的:
【总结】
C#中,调用资源管理器打开特定文件夹,其实和之前使用IE打开对应的网站链接,效果是类似的,都是使用的是
去打开一个东西的。
对应的,就想起来了,再去试试,不指定使用Explorer的话,是不是也还是和之前一样,可以自动检测,使用默认程序打开的:
?
果然,运行结果是一样的,会去找到默认的程序,即Explorer.exe,去打开路径的。
【再总结】
C#中,使用System.Diagnostics.Process.Start可以打开一个东西,
此东西,会根据你传入的参数和指定的程序,实不同的效果:
如果指定了所调用的程序,则会使用该程序,打开该内容
如果没有指定程序,则会寻找系统默认的程序,打开该内容
而对于该内容,目前已经见到过:
如果是路径,比如C:\,则会调用(默认的)资源管理器打开对应的文件夹
如果是网址,比如http://www.crifan.com,那么会调用(默认的)IE浏览器去打开
所以,以后再想要去打开其他东西,则也是按照同样的逻辑去使用System.Diagnostics.Process.Start,即可。
【后记 2012-09-24】
后来又遇到需求是,通过Explorer打开对应文件夹,并选中该文件。
后来找了下,参考:
C#如何打开选中的文件夹并指向选中的文件
然后写代码之前,就去查了下资料:
先去看
System.Diagnostics.Process.Start
的语法:
Process.Start
方法
注意到,此处没有三个参数的,要么是2个参数,要么是4个或5个参数。
所以,也很明显,此函数所要执行的动作,取决于所调用的程序,此处即为Explorer。
所以再去查:
explorer
命令参数及其应用
参数 结果
/n 为默认选择内容打开一个新的单窗格窗口。
默认选择内容通常是安装 Windows 的驱动器的根目录。
/e 使用默认视图启动 Windows 资源管理器。
/e, <object> 使用默认视图启动 Windows 资源管理器并把焦点定位在指定文件夹上。
/root, <object> 打开指定对象的一个窗口视图。
/select, <object> 打开一个窗口视图,指定的文件夹、文件或程序被选中。
备注:请注意命令中“/root”参数后面的逗号。
Explorer /select, C:/Windows/Cursors/banana.ani
此命令启动 Windows 资源管理器后选定“C:/Windows/Cursors/banana.ani”文件。
备注
请注意命令中“/select”参数后面的逗号。
所以,很清楚,就是通过Explorer的/select加上逗号,加上文件的绝对路径,来实现打开并选中文件的。
所以就去写出代码:
?
然后就可以实现对应的效果了:
这个是要选择的文件:
可以实现通过资源管理器打开并选中该文件:
同理,对于想要调用,操作系统的当前的,默认为WMP,播放歌曲类软件,去打开播放歌曲等文件的话,也直接可以通过System.Diagnostics.Process.Start去实现了:
?
当打开的是一个mp3文件时,会自动调用当前的,系统中已和mp3文件关联的播放软件,此处是WMP,去播放歌曲了:
【总结】
至此,越加清楚了System.Diagnostics.Process.Start的含义和用法了。
C#中:
打开单个文件(当文件是歌曲时,则会自动调用mp3播放软件去打开):
?
调用资源管理(Explorer.exe)打开文件夹:
使用默认程序(一般来说,也都是资源管理器)打开文件夹:
?
指定使用资源管理器打开文件夹:
?
调用资源管理器打开文件夹并选中文件:
?
注意:
打开文件夹并选中文件的实际过程,并非先通过传递文件夹参数去打开文件夹,然后再选择文件,
而是,直接通过传入文件的绝对路径,打开文件同时并选中文件的。
所以参数只需要
/select,fullFilePath
即可,而不需要两个参数。
折腾:
C#中如何在右下角添加提示窗口,用于显示打开文件和文件夹
的过程中,需要实现,点击对应LinkLabel后,调用资源管理器,打开对应的文件夹。
【解决过程】
1.找了下,参考:
C#打开文件夹
C#用资源管理器打开指定文件夹
去添加代码:
?
【总结】
C#中,调用资源管理器打开特定文件夹,其实和之前使用IE打开对应的网站链接,效果是类似的,都是使用的是
System.Diagnostics.Process.Start
去打开一个东西的。
对应的,就想起来了,再去试试,不指定使用Explorer的话,是不是也还是和之前一样,可以自动检测,使用默认程序打开的:
?
【再总结】
C#中,使用System.Diagnostics.Process.Start可以打开一个东西,
此东西,会根据你传入的参数和指定的程序,实不同的效果:
如果指定了所调用的程序,则会使用该程序,打开该内容
如果没有指定程序,则会寻找系统默认的程序,打开该内容
而对于该内容,目前已经见到过:
如果是路径,比如C:\,则会调用(默认的)资源管理器打开对应的文件夹
如果是网址,比如http://www.crifan.com,那么会调用(默认的)IE浏览器去打开
所以,以后再想要去打开其他东西,则也是按照同样的逻辑去使用System.Diagnostics.Process.Start,即可。
【后记 2012-09-24】
后来又遇到需求是,通过Explorer打开对应文件夹,并选中该文件。
后来找了下,参考:
C#如何打开选中的文件夹并指向选中的文件
然后写代码之前,就去查了下资料:
先去看
System.Diagnostics.Process.Start
的语法:
Process.Start
方法
名称 | 说明 |
---|---|
Process.Start () | 启动(或重用)此 Process 组件的 StartInfo 属性指定的进程资源,并将其与该组件关联。 由 .NET Compact Framework 支持。 |
Process.Start (ProcessStartInfo) | 启动由包含进程启动信息(例如,要启动的进程的文件名)的参数指定的进程资源,并将该资源与新的 Process 组件关联。 由 .NET Compact Framework 支持。 |
Process.Start (String) | 通过指定文档或应用程序文件的名称来启动进程资源,并将资源与新的 Process 组件关联。 |
Process.Start (String, String) | 通过指定应用程序的名称和一组命令行参数来启动一个进程资源,并将该资源与新的Process 组件相关联。 由 .NET Compact Framework 支持。 |
Process.Start (String, String, SecureString, String) | 通过指定应用程序的名称、用户名、密码和域来启动一个进程资源,并将该资源与新的Process 组件关联起来。 |
Process.Start (String, String, String, SecureString, String) | 通过指定应用程序的名称、一组命令行参数、用户名、密码和域来启动一个进程资源,并将该资源与新的 Process 组件关联起来。 |
所以,也很明显,此函数所要执行的动作,取决于所调用的程序,此处即为Explorer。
所以再去查:
explorer
命令参数及其应用
参数 结果
/n 为默认选择内容打开一个新的单窗格窗口。
默认选择内容通常是安装 Windows 的驱动器的根目录。
/e 使用默认视图启动 Windows 资源管理器。
/e, <object> 使用默认视图启动 Windows 资源管理器并把焦点定位在指定文件夹上。
/root, <object> 打开指定对象的一个窗口视图。
/select, <object> 打开一个窗口视图,指定的文件夹、文件或程序被选中。
备注:请注意命令中“/root”参数后面的逗号。
Explorer /select, C:/Windows/Cursors/banana.ani
此命令启动 Windows 资源管理器后选定“C:/Windows/Cursors/banana.ani”文件。
备注
请注意命令中“/select”参数后面的逗号。
所以,很清楚,就是通过Explorer的/select加上逗号,加上文件的绝对路径,来实现打开并选中文件的。
所以就去写出代码:
?
这个是要选择的文件:
可以实现通过资源管理器打开并选中该文件:
同理,对于想要调用,操作系统的当前的,默认为WMP,播放歌曲类软件,去打开播放歌曲等文件的话,也直接可以通过System.Diagnostics.Process.Start去实现了:
?
【总结】
至此,越加清楚了System.Diagnostics.Process.Start的含义和用法了。
C#中:
打开单个文件(当文件是歌曲时,则会自动调用mp3播放软件去打开):
?
使用默认程序(一般来说,也都是资源管理器)打开文件夹:
?
?
?
注意:
打开文件夹并选中文件的实际过程,并非先通过传递文件夹参数去打开文件夹,然后再选择文件,
而是,直接通过传入文件的绝对路径,打开文件同时并选中文件的。
所以参数只需要
/select,fullFilePath
即可,而不需要两个参数。
相关文章推荐
- C#中调用资源管理器(Explorer.exe)打开指定文件夹 + 并选中指定文件 + 调用(系统默认的播放类)软件(如WMP)打开(播放歌曲等)文件
- [转]C#中调用资源管理器(Explorer.exe)打开指定文件夹 + 并选中指定文件 + 调用(系统默认的播放类)软件(如WMP)打开(播放歌曲等)文件
- C#中调用资源管理器(Explorer.exe)打开指定文件夹 + 并选中指定文件 + 调用(系统默认的播放类)软件(如WMP)打开(播放歌曲等)文件
- java调用Explorer.exe打开文件夹选中文件
- 调用系统UIImagePickerController录像并保存到指定的文件夹,解决保存后播放视频角度偏移90度问题
- C# 打开文件夹,并同时选中指定文件
- 【搜集】打开、选中mpg格式文件时 Explorer.exe 错误关闭 解决方法
- MFC中打开指定文件夹并默认选中该文件夹中的某个文件
- C# winform打开文件夹并选中指定文件
- 怎样用调用资源管理器explore.exe打开指定的文件夹
- linux gvfs GNOME Virtual Filesystem Layer Myeclipse_ open in explorer 使用系统默认的文件浏览器打找指定文件,指定目录
- VB6调用API打开目标文件所在文件夹且选中目标文件
- 打开文件夹并且选中指定的文件的通用函数
- Win7系统打开默认程序出现“软件管理-打开未知文件”窗口的故障分析及解决方法
- 打开文件夹,定位指定文件[c# WinForm]
- C#调用系统注册程序打开pdf文件
- android 将数据以文件的形式保存进sd卡并调用系统所装软件打开
- 调用系统通用对话框打开文件/文件夹
- Android中调用系统所装的软件打开文件
- C++打开指定文件夹,并选中文件