Java:如何检查目录仅包含文件

时间:2017-05-04 06:24:57

标签: java directory

我正在尝试上传仅包含csv文件的zip文件。 现在我必须在获取文件数据之前验证我提取的目录只包含csv文件而不包含任何其他包含csv文件的子文件夹/目录?

3 个答案:

答案 0 :(得分:0)

你可以这样做:

File rootDir = new File("/my/path/to/exploded/zip/file");
boolean onlyFiles = Arrays.stream(rootDir.list())
                   .allMatch(filename -> new File(rootDir, filename).isFile());

但它只能确保rootDir下面的所有文件都是文件而不是目录。您可以添加另一个条件来检查所有文件以.csv

之类的给定扩展名结尾
File rootDir = new File("/");
boolean onlyCsvFiles = Arrays.stream(rootDir.list())
                      .allMatch(filename -> new File(rootDir, filename).isFile() &&
                                            filename.endsWith(".csv"));

答案 1 :(得分:0)

使用java 8,您可以验证路径中的任何元素是否是目录: 如果在路径C:\ Foo

中找到文件夹,则以下实现返回true
String pathString = "C:\\Foo";
Path myPath = Paths.get(pathString);
boolean f = Files.list(myPath).anyMatch(x -> Files.isDirectory(x));
System.out.println(f);

答案 2 :(得分:0)

假设path是你的字符串。

File file = new File(path);

boolean exists =      file.exists();      // Check if the file exists
boolean isDirectory = file.isDirectory(); // Check if it's a directory
boolean isFile =      file.isFile();      // Check if it's a regular file

或者您可以使用NIO类文件并检查以下内容:

Path file = new File(path).toPath();

boolean exists =      Files.exists(file);        // Check if the file exists
boolean isDirectory = Files.isDirectory(file);   // Check if it's a directory
boolean isFile =      Files.isRegularFile(file); // Check if it's a regular file