Java:如何检查仅包含文件的目录
我正在尝试上载只包含csv文件的zip文件。Java:如何检查仅包含文件的目录,java,directory,Java,Directory,我正在尝试上载只包含csv文件的zip文件。 现在,在获取文件数据之前,我必须验证我提取的目录是否只包含csv文件,而不包含任何其他包含csv文件的子文件夹/目录?您可以这样做: File rootDir = new File("/my/path/to/exploded/zip/file"); boolean onlyFiles = Arrays.stream(rootDir.list()) .allMatch(filename -> new File
现在,在获取文件数据之前,我必须验证我提取的目录是否只包含csv文件,而不包含任何其他包含csv文件的子文件夹/目录?您可以这样做:
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"));
使用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);
假设路径是您的字符串
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
嗯,我认为最好的办法是调用
listFiles()
然后过滤该数组,您可以使用java streams(需要java 8)声明,也可以在for循环中执行isDirectory
用于检查File
对象是否为目录,以获得可以使用apache commons IO的扩展名,请参见此处:这可以帮助您:然后您可以检查文件夹中的文件/目录