【问题标题】:Find txt files, create an empty file for each of them, then delete the original file找到txt文件,为每个文件创建一个空文件,然后删除原文件
【发布时间】:2013-06-17 13:58:12
【问题描述】:

谁能告诉我如何在 java 中搜索并找到特定的文件扩展名(如 txt),然后将其删除,然后使用已删除的全名创建另一个文件?

我需要这个 java 脚本来查找和删除目录中非常大的 txt 文件,但为了提供信息,我需要通过创建一个带有已删除文件名的空文件来跟踪已删除的文件。

例如: 在文件夹 x 下,它会找到 300MB 或任何大小的文件 name.txt。它会删除它。然后它会创建一个名为:name.txt 的空文件,大小为 1KB 左右,而不是那个已删除的文件。

有什么想法吗?

【问题讨论】:

  • 你真的需要 Java 来为你做这件事吗?
  • 为此使用Java类似于用大锤杀死一个错误;为什么不直接使用 shell?
  • 我同意 devnull 和 fge 的观点,Java 对于这样的任务来说有点矫枉过正,但如果你坚持,请查看 File API
  • 感谢您的所有回复,我想到了 java,因为我认为我需要 java 之类的东西来删除这些内容。当然,如果有人告诉我如何在 bash shell 中做到这一点,我会非常高兴。但是,我也会尝试这些 java 部分,并在完成后发布整个代码。再次感谢

标签: java file find delete-file


【解决方案1】:

如果您不使用 Java7,这里有一个解决方案。否则看看@Heuster 的评论。

    File dir = new File("/directoryToFile");
    File [] files = dir.listFiles(new FilenameFilter() {
        @Override
        public boolean accept(File dir, String name) {
            return name.equals("fileName.txt");
        }
    });
    if(files != null && files.length > 0){
        File f = new File(files[0].getAbsolutePath());
        files[0].delete();
        f.createNewFile();
    }

【讨论】:

    【解决方案2】:

    试试这个

        for (File file : new File(dir).listFiles()) {
            // delete
            file.delete();
            // create a new file with the same name and len = 1024
            RandomAccessFile f = new RandomAccessFile(file, "rw");
            f.setLength(1024);
            f.close();
        }
    

    【讨论】:

      猜你喜欢
      • 2018-01-16
      • 1970-01-01
      • 1970-01-01
      • 2016-05-31
      • 1970-01-01
      • 1970-01-01
      • 2019-10-17
      • 1970-01-01
      • 2021-09-21
      相关资源
      最近更新 更多