实施“打开包含文件夹”并突出显示文件
Posted
技术标签:
【中文标题】实施“打开包含文件夹”并突出显示文件【英文标题】:Implement "Open Containing Folder" and highlight file 【发布时间】:2011-02-19 05:54:23 【问题描述】:在处理文件/文件夹的程序中,这可能是一个方便的功能。使用以下命令实际打开包含文件夹很容易:
System.Diagnostics.Process.Start( *path to folder* );
...但是我该如何去实际选择该父文件夹中的目标文件?如果我使用 Process.Start 方法,它实际上会尝试打开文件。
【问题讨论】:
Open Folder and Select the file的可能重复 【参考方案1】:根据Windows Explorer Command-Line Options,您只需使用/select
参数启动explorer
进程。
例如,“explorer /select,c:\Windows
”将打开一个窗口,其中选择了c:\windows
文件夹。
所以只需Process.Start("explorer.exe", "/select," + filename)
就足够了。
【讨论】:
谢谢!令我惊讶的是,在安装 Directory Opus 时,尽管明确引用了 explorer.exe,但还是使用了它。这是一件好事。 @Crosbie 那是因为 Directory Opus 挂钩到资源管理器并拦截对它的调用。【参考方案2】:使用/select, "filename"
命令行参数执行 Explorer.exe
System.Diagnostics.Process.Start(
"explorer.exe",
string.Format("/select, \"0\"", filename));
【讨论】:
这行不通,因为select
的参数应该用逗号分隔,而不是用空格分隔
只是为了说明,引用 (\"0\"
) 不是必需的,因为 explorer
会将 /select,
之后的任何内容视为路径(忽略开始和结束空格) - 所以 '/select,0
'就够了...【参考方案3】:
包含文件夹,Self 目录有多种表示方式!!!
简单的两种方法是.
和.\.
不知道有什么区别!.. :D
来自 DOS 和 bat 文件...Start .
或 Start .\.
(Y)
尝试...这 2 项工作,但请检查这是否是您期望的解决方案!
System.Diagnostics.Process.Start("explorer.exe", @".\.");
或者
System.Diagnostics.Process.Start("explorer.exe", @".");
-
有时应用程序从临时目录或其他目录运行(例如:在沙盒中...或在被防病毒软件扫描时...等:)【讨论】:
以上是关于实施“打开包含文件夹”并突出显示文件的主要内容,如果未能解决你的问题,请参考以下文章
在批处理模式下使用 emacs 转储带有语法突出显示的文件?