0
在我的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);
}
}
得到它的工作,這是probally不是最好的方法。
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());
}
}
你的問題是什麼?你有什麼嘗試?它在哪裏失敗?它是如何失敗的? – 2012-03-02 12:55:12
我的問題是我如何做pdf文件的相同的事情,得到的文件夾結構工作,但沒有發現如何做到這一點的文件,並將其放置在正確的節點。 – PandaNL 2012-03-02 13:01:47
得到它的工作,用anwser編輯我的問題。 – PandaNL 2012-03-02 13:40:28