Make directory from path with desired directory name
I am trying to write a program that allows the user to create a set of folders in a specific location. I've tried a lot so far but nothing seems to work.
To be a little clearer, I have a user entering a folder path (using JFileChooser
) and it will set the directory for them in a textbox ( JTextField
). I would like to know how I can do this so that when a folder is created in a user defined path, it also names the folder appropriately. Here is some "working" example code of what I have so far:
public static void addComponentsToPane(Container pane)
{
if (RIGHT_TO_LEFT)
{
pane.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
}
//Components
pane.setLayout(new GridBagLayout());
JLabel label;
GridBagConstraints c = new GridBagConstraints();
JButton buttonH;
JButton buttonB;
JButton cButton;
JCheckBox checkboxP;
JCheckBox checkboxV;
JCheckBox checkboxD;
JCheckBox checkboxM;
if(shouldFill)
{
c.fill = GridBagConstraints.HORIZONTAL;
}
//Input Label
label = new JLabel(" Please Enter Folder Destination ");
if(shouldWeightX)
{
c.weightx = 0.5;
}
c.ipady = 10;
c.fill = GridBagConstraints.BOTH;
c.gridwidth = 2;
c.gridx = 0;
c.gridy = 0;
pane.add(label, c);
//Blank Label
label = new JLabel (" ");
c.fill = GridBagConstraints.BOTH;
c.ipady = 5;
c.gridx = 2;
c.gridy = 1;
pane.add(label, c);
//Text Field
text = new JTextField(" Folder Path ");
c.ipady = 0;
c.fill = GridBagConstraints.BOTH;
c.weightx = 0.0;
c.gridx = 0;
c.gridy = 2;
c.gridwidth = 3;
pane.add(text, c);
text.addActionListener( new ActionListener()
{
public void actionPerformed(ActionEvent t)
{
textAreaPath = text.getText();
p1 = Paths.get(textAreaPath);
}
});
//Browse Button
buttonB = new JButton(" Browse ");
c.fill = GridBagConstraints.BOTH;
c.gridx = 3;
c.gridwidth = 1;
c.gridy = 2;
pane.add(buttonB, c);
buttonB.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent b)
{
JFileChooser fc = new JFileChooser();
FileNameExtensionFilter filter = new FileNameExtensionFilter
("Directories","Directories");
fc.setCurrentDirectory(new java.io.File("home.desktop"));
fc.setAcceptAllFileFilterUsed(false);
fc.setFileFilter(filter);
fc.setDialogTitle(DIRECTORY);
fc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
int returnVal = fc.showOpenDialog(text);
if (returnVal == JFileChooser.APPROVE_OPTION)
{
text.setText(fc.getSelectedFile().getAbsolutePath());
}
;
}
});
//Blank Label
label = new JLabel (" ");
c.fill = GridBagConstraints.BOTH;
c.ipady = 10;
c.gridx = 0;
c.gridwidth = 3;
c.gridy = 3;
pane.add(label, c);
//Continue Button
cButton = new JButton(" Continue ");
c.fill = GridBagConstraints.BOTH;
c.ipady = 0;
c.gridwidth = 1;
c.gridx = 3;
c.gridy = 4;
pane.add(cButton, c);
//Help Button
buttonH = new JButton (" Help ");
c.fill = GridBagConstraints.BOTH;
c.gridx = 0;
c.gridy = 4;
pane.add(buttonH, c);
c.weighty = 3.0;
c.anchor = GridBagConstraints.PAGE_END;
buttonH.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent h)
{
JFrame frameH = new JFrame(" Help ");
JLabel labelH;
frameH.setResizable(false);
frameH.setSize(300, 150);
labelH = new JLabel("<html> In The 'Folder Path' Text Area,"
+" Input The Location Where You Would Like To Create"
+" The New Folder. <br><br> Then Choose The File Type"
+" That You Would Like To Have Sorted Into The Folder."
+"<html> ");
frameH.getContentPane().add(labelH);
frameH.setVisible(true);
}
}); //Ends Action Listener
//Label Page Break
label = new JLabel (" ______________________________________________"
+"_____________________________ ");
c.fill = GridBagConstraints.BOTH;
c.gridx = 0;
c.gridwidth = 5;
c.gridy = 5;
pane.add(label, c);
//Blank Label
label = new JLabel (" ");
c.fill = GridBagConstraints.BOTH;
c.gridx = 0;
c.gridwidth = 5;
c.gridy = 6;
pane.add(label, c);
//Label Check Box Instructions
label = new JLabel ("<html> Please Select The File Type That You Would"
+" Like To Add To The Folder.<html> ");
c.fill = GridBagConstraints.BOTH;
c.gridx = 0;
c.gridwidth = 5;
c.gridy = 7;
pane.add(label, c);
//Check Box (Pictures);
checkboxP = new JCheckBox(" Pictures ");
c.fill = GridBagConstraints.BOTH;
c.gridx = 0;
c.gridwidth = 1;
c.gridy = 8;
pane.add(checkboxP, c);
checkboxP.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent p)
{
SEARCHER = "pictures";
}
});
//Check Box (Documents)
checkboxD = new JCheckBox(" Documents ");
c.fill = GridBagConstraints.BOTH;
c.gridx = 2;
c.gridy = 8;
pane.add(checkboxD, c);
checkboxD.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent d)
{
SEARCHER = "documents";
}
});
//Check Box (Videos)
checkboxV = new JCheckBox(" Videos ");
c.fill = GridBagConstraints.BOTH;
c.gridx = 0;
c.gridy = 10;
pane.add(checkboxV, c);
checkboxV.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent v)
{
SEARCHER = "videos";
}
});
//Check Box (Music)
checkboxM = new JCheckBox(" Music ");
c.fill = GridBagConstraints.BOTH;
c.gridx = 2;
c.gridy = 10;
pane.add(checkboxM, c);
checkboxM.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent m)
{
SEARCHER = "music";
}
});
//Searcher If's
if (SEARCHER == pictures)
{
newFolderName = "Pictures";
extensionType = ".jpg"+".png";
}
if (SEARCHER == documents)
{
newFolderName = "Documents";
extensionType = ".txt"+".doc";
}
if(SEARCHER == videos)
{
newFolderName = "Videos";
extensionType = ".wmv"+".mp4"+".mov";
}
if (SEARCHER == music)
{
newFolderName = "Music";
extensionType = ".mp3";
}
//Continue Button Action Listener
cButton.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent contd)
{
createDirectory(p1);
}
private void createDirectory(Path p1)
{
}
});
}
//Creating The GUI
//-----------------------------------------------------------------------------
private static void createAndShowFrame()
{
JFrame frame = new JFrame(" File Organizer ");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
addComponentsToPane(frame.getContentPane());
frame.pack();
frame.setVisible(true);
}
//Main Method Header
public static void main(String[] args)
{
try {
UIManager.setLookAndFeel
(UIManager.getCrossPlatformLookAndFeelClassName());
} catch (ClassNotFoundException | InstantiationException
| IllegalAccessException | UnsupportedLookAndFeelException e)
{
e.printStackTrace();
}
javax.swing.SwingUtilities.invokeLater(new Runnable()
{
public void run()
{
createAndShowFrame();
}
});
}
}
+3
source to share