我很难尝试添加一个 if 语句来检查该文件夹在删除之前是否存在,如果不存在,它将不会尝试运行。我在另一个类中使用该类,所以目前,由于该文件夹不存在,它使主类在失败时停止它正在做的事情。如果您可以使其进行多次扩展,则可以加分。
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));
}
}
}
如果你需要它,我在这里调用它
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();
}