C#|フォルダパス一覧のツリー構造への変換

 どう書く?orgのトピックフォルダパス一覧のツリー構造への変換への投稿用に書きました。

//http://ja.doukaku.org/
//http://ja.doukaku.org/102/投稿用
using System;
using System.Windows.Forms;
namespace どう書く_orgフォルダパス一覧のツリー構造への変換 {
  class Program {
    [STAThread]
    static void Main(string[] args) {
      Application.Run(new Form1());
    }
  }
  class Form1:Form {
    //treeView1
    TreeView treeView1 = new TreeView();
    //起動時引数でパス一覧のファイルを指定
    string pathListFilePath = System.Environment.GetCommandLineArgs()[1];
    public Form1() {
      //Form1
      this.Load += new EventHandler(Form1_Load);
      //treeView1
      treeView1.Parent = this;
      treeView1.Dock = DockStyle.Fill;
    }
    void Form1_Load(object sender, EventArgs e) {
      //ROOTNode
      TreeNode rootNode = new TreeNode("ROOT");
      treeView1.Nodes.Add(rootNode);
      foreach(string fullPath in System.IO.File.ReadAllLines(pathListFilePath)) {
        TreeNode addNode = rootNode;
        foreach(string path in fullPath.Split(new char[] { '\\' })) {
          bool flag = true;
          foreach(TreeNode node in addNode.Nodes) {
            if(node.Text == path) {
              addNode = node;
              flag = false;
            }
            
          }
          if(flag) {
            TreeNode newnode = new TreeNode(path);
            addNode.Nodes.Add(newnode);
            addNode = newnode;
          }
        }
      }
      rootNode.ExpandAll();
    }
  }
}

コメントを残す

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください