我正在尝试上传仅包含csv文件的zip文件。 现在我必须在获取文件数据之前验证我提取的目录只包含csv文件而不包含任何其他包含csv文件的子文件夹/目录?
答案 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
中找到文件夹,则以下实现返回trueString 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