【发布时间】:2016-07-26 06:16:08
【问题描述】:
我正在尝试在我的应用程序中创建一个“显示”按钮。我希望它可以在所选文件夹中打开 Windows 资源管理器,或者在文件夹中打开并突出显示所选文件。
我知道 Process.Start("explorer.exe", fileName) 会这样做,但是它会在无法导航的资源管理器版本中打开。例如,按“向上目录”会打开一个新窗口。
下面的代码可以满足我的所有需求,除了路径是文件时,每次单击按钮时都会打开一个新的窗口实例。而当路径是一个文件夹时,它会打开一个已经存在的窗口(如果该路径上存在一个窗口)。
我希望我可以拥有相同的文件选择功能。但我不知道该怎么做。
感谢您的任何帮助!
static void OpenInWin(string path) {
path = path.Replace("/", "\\");
ProcessStartInfo pi = new ProcessStartInfo("explorer.exe") {
WindowStyle = ProcessWindowStyle.Normal,
UseShellExecute = true
};
if (Directory.Exists(path)) { // We are opening a directory
pi.FileName = path;
pi.Verb = "open";
} else {
pi.Arguments = "/select, \"" + new FileInfo(path).FullName + "\"";
}
try {
Process.Start(pi);
} catch(Exception e) {
UnityEngine.Debug.Log(e);
}
}
【问题讨论】:
标签: c# process windows-explorer file-browser