Click here to Skip to main content
15,881,139 members
Home / Discussions / C#
   

C#

 
AnswerRe: working with strings Pin
Stefan Troschuetz18-Apr-06 0:52
Stefan Troschuetz18-Apr-06 0:52 
GeneralRe: working with strings Pin
alexey N18-Apr-06 1:25
alexey N18-Apr-06 1:25 
GeneralRe: working with strings Pin
Stefan Troschuetz18-Apr-06 2:06
Stefan Troschuetz18-Apr-06 2:06 
AnswerRe: working with strings Pin
shezh18-Apr-06 3:53
shezh18-Apr-06 3:53 
Questiona weird problem in a member's setter. Pin
Green Fuze18-Apr-06 0:13
Green Fuze18-Apr-06 0:13 
AnswerRe: a weird problem in a member's setter. Pin
J4amieC18-Apr-06 0:18
J4amieC18-Apr-06 0:18 
GeneralRe: a weird problem in a member's setter. Pin
Green Fuze18-Apr-06 0:25
Green Fuze18-Apr-06 0:25 
QuestionLooping through Folders Pin
Pietman Kahl18-Apr-06 0:09
professionalPietman Kahl18-Apr-06 0:09 
Howzit people,

I sit with a very interesting problem and I have the feeling that there is an easier way to do what I want to do. In short, I want to loop through the folders on my machine and build a treeview. Here is the code that I use to do it but it is really slow (Windows form with 2 treeviews named tvwSource and tvwDestination):

<br />
    private void MainForm_Load(object sender, EventArgs e) {<br />
      string path = System.Reflection.Assembly.GetCallingAssembly().Location;<br />
      if (tvwSource.Nodes.Count == 0) {<br />
        FillTree(ref tvwSource, path);<br />
      }<br />
      try {<br />
        if (tvwDestination.Nodes.Count == 0) {<br />
          foreach (TreeNode treeNode in tvwSource.Nodes) {<br />
            tvwDestination.Nodes.Add((TreeNode)treeNode.Clone());<br />
          }<br />
        }<br />
      } catch (Exception) {<br />
      }<br />
    }<br />
<br />
    private void FillTree(ref TreeView bindingTree, string path) {<br />
      TreeNode rootNode = bindingTree.Nodes.Add("", "My Computer", "mycomputer");<br />
      foreach (DriveInfo driveInfo in DriveInfo.GetDrives()) {<br />
        if (driveInfo.DriveType == DriveType.Fixed) {<br />
          LoopFolders(driveInfo.RootDirectory, ref rootNode);<br />
        }<br />
      }<br />
      try {<br />
        bindingTree.SelectedNode = bindingTree.Nodes.Find(path, true)[0];<br />
      } catch (IndexOutOfRangeException) {<br />
        if (bindingTree.Nodes.Count > 0) {<br />
          bindingTree.SelectedNode = bindingTree.Nodes[0];<br />
        }<br />
      }<br />
    }<br />
<br />
    private void LoopFolders(DirectoryInfo directoryInfo, ref TreeNode parentNode) {<br />
      try {<br />
        //Console.WriteLine("{0} ({1})", directoryInfo.FullName, directoryInfo.Attributes);<br />
        //TreeNode subNode = parentNode.Nodes.Add(directoryInfo.FullName, directoryInfo.Name);<br />
        TreeNode subNode = parentNode.Nodes.Add(directoryInfo.Name);<br />
        //Console.WriteLine(" - Added \"{0}\" to \"{1}\"", subNode.Text, parentNode.Text);<br />
        DirectoryInfo[] subDirectoryInfoArray = directoryInfo.GetDirectories();<br />
        foreach (DirectoryInfo subDirectoryInfo in subDirectoryInfoArray) {<br />
          if (0 == (subDirectoryInfo.Attributes & (FileAttributes.System | FileAttributes.Hidden | FileAttributes.Temporary))) {<br />
            if (0 < (subDirectoryInfo.Attributes & FileAttributes.Directory)) {<br />
              LoopFolders(subDirectoryInfo, ref subNode);<br />
            }<br />
          }<br />
        }<br />
        subDirectoryInfoArray = null;<br />
      } catch (UnauthorizedAccessException) {<br />
      } catch (IOException) {<br />
      } finally {<br />
      }<br />
    }<br />


Does anyone know of a quicker way to loop through all the directories on the filesystem?


I used to be vain.... BUT now I'm perfect!

-- modified at 6:11 Tuesday 18th April, 2006
AnswerRe: Looping through Folders Pin
alexey N18-Apr-06 0:49
alexey N18-Apr-06 0:49 
QuestionExtending WebBrowser in .Net 2.0 Pin
mustafakahraman17-Apr-06 23:43
mustafakahraman17-Apr-06 23:43 
AnswerRe: Extending WebBrowser in .Net 2.0 Pin
alexey N18-Apr-06 0:53
alexey N18-Apr-06 0:53 
GeneralRe: Extending WebBrowser in .Net 2.0 Pin
mustafakahraman19-Apr-06 4:48
mustafakahraman19-Apr-06 4:48 
QuestionAbout Thread Priority Pin
Bob_Sun17-Apr-06 23:16
Bob_Sun17-Apr-06 23:16 
AnswerRe: About Thread Priority Pin
Robert Rohde18-Apr-06 5:55
Robert Rohde18-Apr-06 5:55 
GeneralRe: About Thread Priority Pin
Bob_Sun18-Apr-06 6:01
Bob_Sun18-Apr-06 6:01 
GeneralRe: About Thread Priority Pin
Robert Rohde18-Apr-06 6:07
Robert Rohde18-Apr-06 6:07 
GeneralRe: About Thread Priority Pin
Bob_Sun18-Apr-06 6:43
Bob_Sun18-Apr-06 6:43 
GeneralRe: About Thread Priority Pin
LongRange.Shooter18-Apr-06 10:43
LongRange.Shooter18-Apr-06 10:43 
GeneralRe: About Thread Priority Pin
Bob_Sun18-Apr-06 14:07
Bob_Sun18-Apr-06 14:07 
GeneralRe: About Thread Priority Pin
LongRange.Shooter18-Apr-06 17:35
LongRange.Shooter18-Apr-06 17:35 
QuestionHow to print directly to parallel port Pin
vatzcar17-Apr-06 23:12
vatzcar17-Apr-06 23:12 
QuestionSubscribing on events… a must? Pin
anderslundsgard17-Apr-06 22:20
anderslundsgard17-Apr-06 22:20 
AnswerRe: Subscribing on events… a must? Pin
J4amieC17-Apr-06 22:47
J4amieC17-Apr-06 22:47 
GeneralRe: Subscribing on events… a must? Pin
anderslundsgard17-Apr-06 23:26
anderslundsgard17-Apr-06 23:26 
Questioncreating dynamic checkboxes Pin
umaheshchandra17-Apr-06 21:17
umaheshchandra17-Apr-06 21:17 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.