java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > JavaWeb-file.isDirectory()遇到的坑

解决JavaWeb-file.isDirectory()遇到的坑问题

作者:Monly21

JavaWeb开发中,使用`file.isDirectory()`判断路径是否为文件夹时,需要特别注意:该方法只能判断已存在的文件夹,若路径不存在,无论其实际是否应为文件夹,均会返回`false`,为了解决这个问题,可以采用正则表达式进行判断,但要求路径字符串的结尾必须添加反斜杠(\)

JavaWeb-file.isDirectory()遇到的坑

概述

通过new File(filePath) 获取文件对象file,通过file.isDirectory()判断传入的路径是否是文件夹,但是这种方式只能适配于文件夹已经存在的情况

详解

当文件夹已经存在时,使用isDirectory方法可以判断传入的路径是否是文件夹

String path = "D:\repo\JavaDemo\FileTransfer\static\service\file1";

File file = new File(str);

System.out.println(file.isDirectory());  // true

但是,当你传入的路径在磁盘目录中不存在时,就无法判断,会一直返回false

String path = "D:\repo\JavaDemo\FileTransfer\static\service\zhangsan";

File file = new File(str);

System.out.println(file.isDirectory());  // false

解决方案

可以使用正则表达式进行判断,但是路径的结尾一定要加 \

String path = "D:\repo\JavaDemo\FileTransfer\static\service\zhangsan\\";

if(str.matches("^[A-z]:\\\\(.+?\\\\)*$")){
   System.out.println("文件夹!!!");
}

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文