public static void start()
            {
                if (!isRunning)
                {
                    isRunning = true;

                    StandardStreamRedirector.open(StandardStreamRedirector.StreamFileDescriptor.Output, null);
                    onRedirectionStarted();

                    monitoringThread = new Thread(new ThreadStart(monitoring));
                    monitoringThread.Start();
                }
            }
        public FileManager(ActionListener actionListener = null)
        {
            this.actionListener = actionListener;

            if (!Directory.Exists(inputPath))
            {
                Directory.CreateDirectory(inputPath);
            }

            if (!Directory.Exists(outputPath))
            {
                Directory.CreateDirectory(outputPath);
            }

            if (!Directory.Exists(tempProgressPath))
            {
                Directory.CreateDirectory(tempProgressPath);
            }

            StandardStreamRedirector.open(StandardStreamRedirector.StreamFileDescriptor.Error, tempLogFilePath);
        }