C# Tips


ファイル構造からツリーを作成するには


パターン的に良く使われるのは、ファイル構造からツリーを作成することだと思います。
ここではその例を示します。
再起関数を使用して、ファイルツリーをトラバースし、TreeViewを構築していきます。
TreeView treeView = new TreeView();

private void ConstructTree()
{
	treeView.Nodes[0].Nodes.Clear();
	TreeNode node = treeView.Nodes[0];
	ConstructTreeRecursive(node);
}


private void ConstructTreeRecursive()
{
	string directoryName = Application.StartupPath + "\\" + node.FullPath;

	if(Directory.Exists(directoryName) == false) return;

	DirectoryInfo directory = new DirectoryInfo(directoryName);

	// Files
	FileInfo [] files = directory.GetFiles();

	foreach(FileInfo file in files)
	{
		TreeNode newNode = node.Nodes.Add(file.Name);
		newNode.ImageIndex = 1;
		newNode.SelectedImageIndex = 1;
	}

	// Directories
	DirectoryInfo[] subDirectories = directory.GetDirectories();
	foreach(DirectoryInfo subDirectory in subDirectories)
	{
		TreeNode newNode = node.Nodes.Add(subDirectory.Name);
		newNode.ImageIndex = 0;
		newNode.SelectedImageIndex = 0;
		ConstructDocumentTreeRecursive(newNode);
	}
}


目次に戻る
Copyright(c) 2008 WoodenSoldier Software