0

我很难尝试添加一个 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();   

        }
4

1 回答 1

0
File dir = new File(folder);

if (dir.exists()) {

  //list out all the file name with .txt extension
  String[] list = dir.list(filter);

  ...
}
于 2012-06-29T02:27:10.280 回答