【C#】タブを使って複数のフォルダを一気に一つのエクスプローラーで開く

複数のフォルダを一気に開くC#コードを書きました。


簡単にできるのかも知れませんがその方法が見つけられなかったので自分で作りました。

C#コード

あらかじめ「プロジェクト」→「参照の追加」からSystem.Windows.Formsを追加する必要があります。

using System;
using System.Diagnostics;
using System.Threading;
using System.Windows.Forms;
using System.IO;
using System.Text;
using System.Linq;

namespace open_explorer
{
    internal class Program
    {
        [STAThread]
        static void Main(string[] args)
        {
            string path = @"settings.txt";
            if (!File.Exists(path))
            {
                Environment.Exit(0);
            }
            var all_lines = File.ReadAllLines(path, Encoding.GetEncoding("utf-8"));
            var lines = all_lines.Where(line => line.Trim() != string.Empty).ToArray();

            Process.Start("explorer.exe");

            int sleep_time = 0;
            int start_line = 0;
            if(int.TryParse(lines[0], out sleep_time))
            {
                start_line = 1;
            }
            else
            {
                sleep_time = 1000;
            }

            for (int i = start_line; i < lines.Length; i++)
            {
                if (i == start_line)
                {
                    Thread.Sleep(sleep_time);
                    Clipboard.SetText(lines[i]);
                    SendKeys.SendWait("^l");
                    SendKeys.SendWait("^v");
                    SendKeys.SendWait("{enter}");
                }
                else
                {
                    SendKeys.SendWait("^t");
                    Thread.Sleep(sleep_time);
                    Clipboard.SetText(lines[i]);
                    SendKeys.SendWait("^l");
                    SendKeys.SendWait("^v");
                    SendKeys.SendWait("{enter}");
                }
            }
            Thread.Sleep(sleep_time);
            SendKeys.SendWait("^l");
            SendKeys.SendWait("{enter}");
            Clipboard.Clear();
        }
    }
}

使い方

開くフォルダのアドレスを「settings.txt」という名前のテキストファイルに列挙しておきます。

それだけです。

D:\PythonApp\diffbir\DiffBIR\shortcut
D:\PythonApp\diffbir\DiffBIR\inputs
D:\PythonApp\diffbir\DiffBIR\outputs



PCの処理が追い付かない場合があるのでsleep_timeを設けています。
デフォルトは1000(ms)にしています。各動作毎に1秒待ちます。

もっと待つ時間を短くしたければ先頭に数字を記入するだけです。

500
D:\PythonApp\diffbir\DiffBIR\shortcut
D:\PythonApp\diffbir\DiffBIR\inputs
D:\PythonApp\diffbir\DiffBIR\outputs





このエントリーをはてなブックマークに追加