Vad jag försöker med är: Jag hade gjort nåt sånt här: Tack, helt enkelt underbart.Problem med TreeView.
Via FolderBrowser, så pekar jag på en katalog, denna katalog blir då rootmappen i min treeView. Därefter så ville jag lista alla undermapparna i den katalogen.
Så långt är allt bra, men om nu undermapparna innehåller andra undermappar (nästa steg), då skiter det sig.
<code>
if (folderBrowserDialog1.ShowDialog() == DialogResult.OK)
{
folderName = folderBrowserDialog1.SelectedPath;
statusBarPanel2.Text = folderName;
modermapp = new DirectoryInfo(folderName);
undermapparIModermapp = modermapp.GetDirectories();
treeView1.Nodes.Clear();
treeView1.ImageIndex=1;
TreeNode nodee = treeView1.Nodes.Add(folderName);
foreach(DirectoryInfo mapp in undermapparIModermapp)
{
nodee.ImageIndex=0;
nodee.ExpandAll();
nodee.Nodes.Add(new TreeNode(mapp.Name));
foreach(DirectoryInfo undermapp in mapp)
{
nodee.Nodes.Add(new TreeNode(undermapp.Name));
}
}
}
</code>
Error som jag får:
<code>
E:\MultLanguage\MultLanguage\MultLanguage.cs(255): foreach statement cannot operate on variables of type ''System.IO.DirectoryInfo'' because ''System.IO.DirectoryInfo'' does not contain a definition for ''GetEnumerator'', or it is inaccessible
</code>
Hur löser jag detta?Sv: Problem med TreeView.
private void AddSubdirectories(DirectoryInfo dir, TreeNode node)
{
foreach(DirectoryInfo subdir in dir.GetDirectories())
{
Treenode child=node.Nodes.Add(subdir.Name);
AddSubdirectories(subdir,child);
}
}
...
if (folderBrowserDialog1.ShowDialog() == DialogResult.OK)
{
folderName = folderBrowserDialog1.SelectedPath;
statusBarPanel2.Text = folderName;
modermapp = new DirectoryInfo(folderName);
undermapparIModermapp = modermapp.GetDirectories();
treeView1.Nodes.Clear();
treeView1.ImageIndex=1;
treeView1.BeginUpdate();//säger till den att den inte behöver rita om sig...
TreeNode nodee = treeView1.Nodes.Add(folderName);
AddSubdirectories(modermapp,nodee);
treeView1.EndUpdate();
}
Sv: Problem med TreeView.
Fick på halsen ett problem till.
Jag ville inte ha med mappar som börjar med "_"(alltså "_vti_cnf " t ex).
Jag försöker så här
<code>
if(folderName.Substring(0,1)!= "_")
</code>
.. men jag tänker galet någonstans, för ingenting händer (dvs mapparna med "_" vissas).