Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
swdev:java:files:file_routines [2017/10/03 08:30]
smayr [Method 4]
swdev:java:files:file_routines [2018/03/12 08:16] (current)
smayr
Line 74: Line 74:
     }     }
 </code>     </code>    
 +
 +== Example ==
 +<code java>
 +/*
 + * To change this license header, choose License Headers in Project Properties.
 + * To change this template file, choose Tools | Templates
 + * and open the template in the editor.
 + */
 +package com.voirtech.sdayearbook;
 +
 +import java.io.File;
 +import javax.swing.JTree;
 +import javax.swing.tree.DefaultMutableTreeNode;
 +import javax.swing.tree.DefaultTreeModel;
 +
 +/**
 + *
 + * @author mayr
 + */
 +public class FileUtils 
 +{
 +    /*
 +     * Usage: 
 +        try {
 +            treeOrgTypes.setModel(new DefaultTreeModel(new DefaultMutableTreeNode("C:\\WAMP")));  // clear existing model
 +            FileUtils.scanAndLoadDirectory("C:\\WAMP", treeOrgTypes);
 +        } catch (Exception exc) {
 +          // Handle exception
 +        }
 +     */
 +    public static void scanAndLoadDirectory(String location, JTree tree) throws InterruptedException 
 +    {    
 +        // Creates a file with the location filename
 +        //String location ="C:\\Users\\John Doe\\Documents";
 +        File currentDir = new File(location);
 +
 +        // Get root of tree model
 +        DefaultTreeModel modelTree  = (DefaultTreeModel)tree.getModel();
 +        DefaultMutableTreeNode root = (DefaultMutableTreeNode) modelTree.getRoot();
 +        
 +        displayDirectoryContents(currentDir, modelTree, root);
 +    }
 +    
 +    public static void displayDirectoryContents(File dir, DefaultTreeModel model, DefaultMutableTreeNode curRoot) throws InterruptedException 
 +    {   
 +        File[] files = dir.listFiles();  // Creates array of file type for all the files found
 +
 +        for (File file : files) {
 +            if (file == null) {
 +                System.out.println("NULL directory found");
 +                continue;
 +            }
 +            if (file.isDirectory()) {
 +                //---------------------------
 +                // File is a Directory
 +                //---------------------------
 +               if (file.listFiles() == null) {
 +                    // Skip null files
 +                    continue;
 +                }
 +
 +                // Adds a new Directory node to tree root
 +                DefaultMutableTreeNode newdir = new DefaultMutableTreeNode(file.getName());
 +                curRoot.add(newdir);
 +
 +                // Refresh the model to show changes
 +                model.reload();
 +
 +                // Recursively calls the function again to explore the contents folder
 +                displayDirectoryContents(file, model, newdir);
 +                
 +            } else {  
 +                //---------------------------
 +                // File is not a directory
 +                //---------------------------
 +                // Inserts a node newfile under selected node which is the root
 +                DefaultMutableTreeNode selectednode = curRoot;
 +                DefaultMutableTreeNode newfile = new DefaultMutableTreeNode(file.getName());
 +                model.insertNodeInto(newfile, selectednode, selectednode.getChildCount());
 +
 +                // Refresh the model to show the changes
 +                model.reload();
 +            }
 +        }    
 +    }
 +}
 +</code>