I am having a hard time tryin to add an if statement to check if the folder exists before deletion and if it does not, it won’t try to run. I am using the class in another class, so at the moment, it makes the main class stop what it is doing when this fails because the folder does not exist. Bonus points if you can make it do multiple extensions.
public class cleardiroftxt {
static String userprofile = System.getenv("USERPROFILE");
private static final String FILE_DIR = userprofile+"\\Downloads\\Software_Tokens";
private static final String FILE_TEXT_EXT = ".txt";
public static void run(String args[]) {
new cleardiroftxt().deleteFile(FILE_DIR,FILE_TEXT_EXT);
}
public void deleteFile(String folder, String ext){
GenericExtFilter filter = new GenericExtFilter(ext);
File dir = new File(folder);
//list out all the file name with .txt extension
String[] list = dir.list(filter);
if (list.length == 0) return;
File fileDelete;
for (String file : list){
String temp = new StringBuffer(FILE_DIR)
.append(File.separator)
.append(file).toString();
fileDelete = new File(temp);
boolean isdeleted = fileDelete.delete();
System.out.println("file : " + temp + " is deleted : " + isdeleted);
}
}
//inner class, generic extension filter
public class GenericExtFilter implements FilenameFilter {
private String ext;
public GenericExtFilter(String ext) {
this.ext = ext;
}
public boolean accept(File dir, String name) {
return (name.endsWith(ext));
}
}
}
If you need it, I am calling it here
public void actionPerformed(ActionEvent e){
JButton clickedButton = (JButton) e.getSource();
// JOptionPane.showMessageDialog(null, clickedButton.getText() + " clicked");
cleardir.run(null);
cleardiroftxt.run(null);
Unzip.run(null);
//when we click the ok button... then
if(clickedButton == btnOk){
JOptionPane.showMessageDialog(null, clickedButton.getText() + " clicked");
String cboString = (String) cboSequence.getSelectedItem();
/* we have to check if user have entered any value, is the chosen digit is NOT NONE.
* the ComboBox selection is NOT "None"
*/
if(cboString.equals("None") == false){
String temp = txtSequence.getText();
// then it has to be have some value for the textfield
if(temp.equals("") || temp == null){
JOptionPane.showMessageDialog(null, "Oops... Please fill up the sequence number field");
txtSequence.grabFocus();
//something to highlight the field in future?
return;
}
}
JOptionPane.showMessageDialog(null, "rename invoked");
renameFile();
}
1 Answer