Results 1 to 2 of 2

Thread: File manager - refresh Treeview after FileSystem changes

  1. #1

    Thread Starter
    Fanatic Member
    Join Date
    Nov 2016
    Location
    Slovenia
    Posts
    575

    File manager - refresh Treeview after FileSystem changes

    Hi,

    I have a file manager with Listview and Treeview to show directory structure. When I do some FileSystem changes via Listview, I want to update Treeview too. Currently what I do is just re-populating Treeview after FileSystem changes are done, but that resets my Treeview nodes.

    Does anybody have an idea on how I could force update of Treeview without re-populating It - same as in Windows Explorer ?...So when you rename folder and folder is visible in treeview - rename it. When folder deleted and is visible in Treeview, delete It etc...

    Some code sample would be highly appreciated, thanks in advance !!

  2. #2

    Thread Starter
    Fanatic Member
    Join Date
    Nov 2016
    Location
    Slovenia
    Posts
    575

    Re: File manager - refresh Treeview after FileSystem changes

    This is how I started innitially, maybe someone can help me from here on. Basically, I trap all FileSystem changes via FileSystemWatcher and by that I could refresh Treeview:

    Code:
    private void RefreshTreeview(object source,System.IO.FileSystemEventArgs e)
            {
                switch (e.ChangeType)
                {
                    case WatcherChangeTypes.Created:
                        break;
    
                    case WatcherChangeTypes.Deleted: 
                        TreeNode deletenode = SearchTag(Treeview1, updating.FirstOrDefault());
                       
                        if (deletenode != null)
                        {
                            deletenode.Remove();
                        }
    
                        break;
                    case WatcherChangeTypes.Changed:
                        break;
    
                    case WatcherChangeTypes.Renamed: 
    
                        TreeNode renamenode = SearchTag(Treeview1,updating.FirstOrDefault());
                        
                        if (renamenode != null)
                        {
                            renamenode.Tag = updating.ElementAt(1);
                            renamenode.Text = updating.ElementAt(2);
                        }
    
                        break;
                  
                    default:
                        break;
                }
    
            }

    This part of code successfully renames or deletes node on treeview after I do any FileSystem changes from my Listview. As you see, I store string[] for new/old tag & text. However, I'm missing case for "changed" & "created", and don't know how to start....

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  



Click Here to Expand Forum to Full Width