私のWinformsアプリケーションでは、特定のプロジェクトのすべてのフォルダを表示するためにツリービューを作成しましたが、これはうまくいきますが、フォルダに保存されているPDFファイルも見たいと思っています。C#PDFファイルでtreeviewを埋め込む
私は特定のプロジェクトのフォルダ構造を取得するために私のコードを使用します。
void PopulateTree()
{
//Getting the correct location for the project
TreeNode rootnode = new TreeNode(@"Z:\Projecten\" + slctJaarBox.Text + "\\" + slctProjectBox.Text);
treeView1.Nodes.Add(rootnode);
FillChildNodes(rootnode);
treeView1.Nodes[0].Expand();
}
void FillChildNodes(TreeNode node)
{
//Creates the nodes for the folder structure on root level
try
{
FileInfo files = new FileInfo(node.FullPath);
DirectoryInfo dirs = new DirectoryInfo(node.FullPath);
foreach (DirectoryInfo dir in dirs.GetDirectories())
{
TreeNode newnode = new TreeNode(dir.Name);
node.Nodes.Add(newnode);
newnode.Nodes.Add("*");
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message.ToString());
}
}
private void treeView1_BeforeExpand(object sender, TreeViewCancelEventArgs e)
{
//Will only load and add a node subdirectorys if a node is expanded,
//this is for faster loading
if (e.Node.Nodes[0].Text == "*")
{
e.Node.Nodes.Clear();
FillChildNodes(e.Node);
}
}
これはうまくいきました。それは確かに最良の方法ではありません。
void FillChildNodes(TreeNode node)
{
try
{
DirectoryInfo dirs = new DirectoryInfo(node.FullPath);
foreach (DirectoryInfo dir in dirs.GetDirectories())
{
TreeNode newnode = new TreeNode(dir.Name);
node.Nodes.Add(newnode);
newnode.Nodes.Add("*");
}
FileInfo[] arrFilesInFolder = null;
FileInfo bestandInFolder = null;
arrFilesInFolder = dirs.GetFiles("*.pdf");
foreach (FileInfo fileInFolder_loopVariable in arrFilesInFolder)
{
bestandInFolder = fileInFolder_loopVariable;
TreeNode newnode = new TreeNode(bestandInFolder.Name);
node.Nodes.Add(newnode);
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message.ToString());
}
}
あなたの問題は何ですか?あなたは何を試しましたか?それはどこで失敗したのですか?どのように失敗したのですか? –
私の問題は、pdfファイルに対して同じことをやって、フォルダ構造を作っていますが、ファイルに対してこれを実行して正しいノードに配置する方法をまだ見つけていませんでした。 – PandaNL
それは働いて、anwserと私の質問を編集しました。 – PandaNL