Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
                        //    }
                        //}
                    }
                }
            }
        }