private static void OpenInTotalComander(string filePath, TotalCommanderPane pane) { string exePath = Settings.Current.TOpenerExePath; string parametersFormat = null; if (pane == TotalCommanderPane.Left) { parametersFormat = Settings.Current.TOpenerParametersFormatForOpenInLeftPane; } else if (pane == TotalCommanderPane.Right) { parametersFormat = Settings.Current.TOpenerParametersFormatForOpenInRightPane; } string parameters = string.Format(parametersFormat, filePath); CraftSynth.BuildingBlocks.WindowsNT.Misc.OpenFile(exePath, parameters); }
public void ExecuteCommand(Extension.IEnsoService service, Command command) { Logging.AddActionLog(string.Format("TOpener: Executing command '{0}' ...", command.Name)); if (command.Name == "topen" || command.Name == "rtopen") { Logging.AddActionLog(string.Format("TOpener: Opening '{0}' in Total Commander ...", command.parametersOnExecute[0].GetValueAsText())); MessagesHandler.Display(string.Format("Opening {0} ...", command.parametersOnExecute[0].GetValueAsText())); if (IsPathSuitable(command.parametersOnExecute[0].GetValueAsText())) { TotalCommanderPane pane = TotalCommanderPane.Left; if (command.Name == "topen") { pane = TotalCommanderPane.Left; } else if (command.Name == "rtopen") { pane = TotalCommanderPane.Right; } OpenInTotalComander(command.parametersOnExecute[0].GetValueAsText(), pane); } else {//extract filepaths and try to open their parent folder List <string> fileSelectionList = Syntax.FileSelectionFromString(command.parametersOnExecute[0].GetValueAsText()); if (fileSelectionList.Count == 0) { Logging.AddErrorLog(string.Format("TOpener: File/Folder '{0}' not found.", command.parametersOnExecute[0].GetValueAsText())); MessagesHandler.Display("File/Folder not found.", command.parametersOnExecute[0].GetValueAsText()); } else { string parentFolder = Directory.GetParent(fileSelectionList[0]).FullName; if (IsPathSuitable(parentFolder)) { TotalCommanderPane pane = TotalCommanderPane.Left; if (command.Name == "topen") { pane = TotalCommanderPane.Left; } else if (command.Name == "rtopen") { pane = TotalCommanderPane.Right; } OpenInTotalComander(parentFolder, pane); } else { Logging.AddErrorLog(string.Format("TOpener: File/Folder '{0}' not found.", parentFolder)); MessagesHandler.Display("File/Folder not found.", parentFolder); } //foreach (string filePath in fileSelectionList) //{ // if (File.Exists(filePath) || Directory.Exists(filePath)) // { // OpenInTotalComander(filePath); // } // else // { // MessagesHandler.Display( "File/Folder not found.", filePath); // } //} } } } }