【问题标题】:File handling in core java核心java中的文件处理
【发布时间】:2010-10-29 05:08:12
【问题描述】:

我需要做一些家务。我不小心将我的类路径设置为与我的代码库相同,并且所有类都与我的代码一起放置。我需要编写一个快速的 java 程序来单独选择 .class 和 .class 类型的所有文件并立即删除。有没有人做过与此相关的事情?

【问题讨论】:

    标签: java file file-io io


    【解决方案1】:

    你为什么不使用 shell 来做到这一点,比如:

    Linux:

     find . -name *.class -print -exec rm {} \;
    

    窗户:

     for /r %f in (*.class) do del %f
    

    【讨论】:

    • 先备份。以防万一。
    • 我假设我应该从应该删除 .class 文件的包中运行,它会深入到任何级别。
    • 这将在当前目录的子目录中查找。当然,备份总是一个好主意
    【解决方案2】:
    find . -name "*.class" -exec rm '{}' \;
    

    【讨论】:

      【解决方案3】:

      这可能有效。未经测试。其他人的那些 find/for 命令看起来也很有希望,但以防万一你在 OS/390 大型机上,这里是 Java。 ;-)

      import java.io.File;
      import java.io.IOException;
      
      public class RemoveClass {
      
          public static void main(String[] args) throws Exception {
              File f = new File(".");
              deleteRecursive(f);
          }
      
          public static void deleteRecursive(File f) throws IOException {
              if (f.isDirectory()) {
                  for (File file : f.listFiles()) {
                      deleteRecursive(file);
                  }
              } else if (f.isFile() && f.getName().endsWith(".class")) {
      
                  String path = f.getCanonicalPath();
      
                  // f.delete();
                  System.out.println("Uncomment line above to delete: [" + path + "]");
      
              }
          }
      }
      

      【讨论】:

      • 在 OS/390 上(假设它类似于 AS/400),有一个 QSHELLfind :)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-06
      • 2018-08-09
      相关资源
      最近更新 更多