如何使用Java检查系统中是否存在文件或目录

时间:2015-05-11 08:01:52

标签: java

在我的应用程序中,我想创建一个文件夹(名为批处理),如果它在系统中不存在。如果存在则返回文件的引用对象。我不知道文件的路径。

File f=new File("batches");
if(!f.exists())
{
  f.mkdir();
}

这将在根文件夹中创建一个目录,并在第二次执行时返回此目录。

3 个答案:

答案 0 :(得分:0)

您可以检查所有连接的驱动器: Find all drive letters in Java

然后迭代所有目录(和子目录) How do I iterate through the files in a directory in Java?

然而,这将是一个非常漫长的过程。如果我们了解您的计划的目的,我们可以帮助您提供更优雅的解决方案。

答案 1 :(得分:0)

下面的代码在第一次执行代码时创建目录批次,下次打印时#34;已经存在"声明目录已经创建。

如果您在src

之外创建目录后已经执行了应用程序
File f=new File("batches");
      if(!f.exists())
      {
        f.mkdir();
      }
      else{
          System.out.println("Already present!");
      }

答案 2 :(得分:0)

也许这样的事情可以做到:

import java.io.*; 
import java.nio.file.*; 
import java.nio.file.attribute.*; 
import static java.nio.file.FileVisitResult.*; 

public class GetBatchesDir {     
    public static class Finder extends SimpleFileVisitor<Path> {
        private final PathMatcher matcher;
        public Path pathFound=null;

        Finder(String pattern) {
            matcher = FileSystems.getDefault().getPathMatcher("glob:" + pattern);
        }

        boolean found(Path file) {
            Path name = file.getFileName();
            return (name != null && matcher.matches(name));
        }

        @Override
        public FileVisitResult preVisitDirectory(Path dir,BasicFileAttributes attrs) {
            if (found(dir)) {
                pathFound=dir;
                return TERMINATE;
            }
            else
                return CONTINUE;
        }
    }

    public static void main(String[] args) throws IOException {
        Finder finder = new Finder("batches");
        Files.walkFileTree(Paths.get("."), finder);
        PrintWriter out;
        if (finder.pathFound != null)
            out=new PrintWriter(finder.pathFound.toString()+"/file.txt");
        else { 
            new File("./batches").mkdir();
            out=new PrintWriter("./batches/file.txt");
        }
        out.println("Hello");
        out.close();
    }
}

NIO通常过于雄心勃勃,但有很好的查找器功能,因此我们将其用于此,并为其余部分使用简单的文件。 我用过 ”。”作为文件系统的根,你可以找到更合适的东西。如果文件存在,磁盘已满,您还必须弄清楚要做什么等等。