Example #1
0
        private void BrowseLogButton_Click(object sender, EventArgs args)
        {
            using (OpenFileDialog dlg = new OpenFileDialog())
            {
                dlg.FileName = SelectedLogDirText.Text;
                dlg.Filter   = Tx.T("log selection view.file dialog.filter");
                if (!string.IsNullOrEmpty(SelectedLogDirText.Text))
                {
                    dlg.InitialDirectory = Path.GetDirectoryName(SelectedLogDirText.Text);
                }
                dlg.Title = Tx.T("log selection view.file dialog.title");

                if (dlg.ShowDialog() == DialogResult.OK)
                {
                    if (ScanDirectoryWorker.IsBusy)
                    {
                        ScanDirectoryWorker.CancelAsync();
                    }

                    string basePath = GetBasePath(dlg.FileName);
                    SelectedLogDirText.Text = basePath;
                    try
                    {
                        SetLogBasePath(basePath);
                    }
                    catch
                    {
                        MessageBox.Show(
                            FindForm(),
                            Tx.T("msg.logpath parameter invalid", "value", basePath),
                            Tx.T("msg.title.error"),
                            MessageBoxButtons.OK,
                            MessageBoxIcon.Error);
                        ResetLogBasePath();
                        FindLogBasePath();
                        return;
                    }

                    CurrentLabel.Show();
                    SelectedLogDirText.Show();
                    FindLogsButton.Show();
                    LogDirsListView.Hide();
                    dirListMode  = false;
                    fullScanMode = false;
                    UpdateButtons();
                }
            }
        }
Example #2
0
        private void FindLogsButton_Click(object sender, EventArgs args)
        {
            CurrentLabel.Hide();
            SelectedLogDirText.Hide();
            FindLogsButton.Hide();
            ConfigErrorLabel.Hide();
            LogDirsListView.Items.Clear();
            LogDirsListView.Show();
            dirListMode = true;
            UpdateButtons();

            if (ignoredDirectories.Count == 0)
            {
                ignoredDirectories.Add(Environment.GetFolderPath(Environment.SpecialFolder.Windows) + "\\");
                ignoredDirectories.Add(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles), "Adobe\\"));
                ignoredDirectories.Add(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles), "Common Files\\"));
                ignoredDirectories.Add(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles), "Google\\"));
                ignoredDirectories.Add(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles), "Microsoft"));
                ignoredDirectories.Add(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles), "Reference Assemblies\\"));
                ignoredDirectories.Add(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles), "Windows "));
                if (Environment.Is64BitOperatingSystem)
                {
                    ignoredDirectories.Add(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFilesX86), "Adobe\\"));
                    ignoredDirectories.Add(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFilesX86), "Common Files\\"));
                    ignoredDirectories.Add(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFilesX86), "Google\\"));
                    ignoredDirectories.Add(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFilesX86), "Microsoft"));
                    ignoredDirectories.Add(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFilesX86), "Reference Assemblies\\"));
                    ignoredDirectories.Add(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFilesX86), "Windows "));
                }
                ignoredDirectories.Add(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData), "Adobe\\"));
                ignoredDirectories.Add(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData), "Microsoft\\"));
                ignoredDirectories.Add(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData), "Package Cache\\"));
            }

            fullScanMode = true;
            ScanDirectoryWorker.RunWorkerAsync();
            MainForm.Instance.SetProgress(true, -1);
        }
Example #3
0
        public void FindLogBasePath()
        {
            string appDir = Path.GetDirectoryName(Application.ExecutablePath);
            Dictionary <string, LogBasePathInfo> logPaths = new Dictionary <string, LogBasePathInfo>();

            // Find *.flconfig in appDir
            foreach (string fileName in Directory.GetFiles(appDir, "*.flconfig"))
            {
                // Read the path setting
                var    config   = new ConfigReader(fileName);
                string basePath = config.ReadPath();
                // If a log file was found in that path, put it on the list
                if (!string.IsNullOrEmpty(basePath))
                {
                    CheckLogBasePath(basePath, logPaths);
                }
            }

            // Find *.exe in appDir
            foreach (string fileName in Directory.GetFiles(appDir, "*.exe"))
            {
                string baseName = Path.GetFileNameWithoutExtension(fileName);
                // Go through all possible default log paths for the exe file
                // If a log file was found in a path, put it on the list
                CheckLogBasePath(Path.Combine(appDir, "log", baseName), logPaths);
                CheckLogBasePath(Path.Combine(appDir, baseName), logPaths);
                CheckLogBasePath(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), baseName + "-log", baseName), logPaths);
                CheckLogBasePath(Path.Combine(Path.GetTempPath(), baseName + "-log", baseName), logPaths);
            }

            // Find *.fl in appDir
            var seenNames = new HashSet <string>();

            foreach (string fileName in Directory.GetFiles(appDir, "*.fl"))
            {
                string baseName = Path.GetFileNameWithoutExtension(fileName);
                var    match    = Regex.Match(baseName, @"^(.+)-[0-9]-[0-9]+$");
                if (match.Success)
                {
                    string logName = match.Groups[1].Value;
                    if (!seenNames.Contains(logName))
                    {
                        CheckLogBasePath(Path.Combine(appDir, logName), logPaths);
                        seenNames.Add(logName);
                    }
                }
            }

            if (logPaths.Count == 1)
            {
                SetLogBasePath(logPaths.Values.First().LogBasePath);
            }
            else if (logPaths.Count > 1)
            {
                LogDirsListView.Items.Clear();
                foreach (var kvp in logPaths)
                {
                    AddDirectory(kvp.Value);
                }
                // Sort by latest update time
                logDirsColumnSorter.SortColumn = 1;
                logDirsColumnSorter.Order      = SortOrder.Descending;
                logDirsColumnSorter.Update();

                CurrentLabel.Hide();
                SelectedLogDirText.Hide();
                LogDirsListView.Show();
                dirListMode = true;
                UpdateButtons();
            }
        }