编程语言
首页 > 编程语言> > java-区分大小写的文件扩展名和存在性检查

java-区分大小写的文件扩展名和存在性检查

作者:互联网

我需要检查文件是否存在.可以通过File#exists()方法完成.但是这种存在检查是区分大小写的.我的意思是,如果我在代码中有一个文件名some_image_file.jpg,但实际上如果文件是some_image_file.JPG,则此方法表示该文件不存在.如何以不区分大小写的扩展名检查文件的存在并获取实际的文件名?

在我的情况下,我有一个Excel文件.每行包含文件和文件名的元数据.在某些情况下,我只有文件名,而在其他情况下,我可以拥有完整路径.我将一行表示为文档.

这些文件放置在服务器中.我的工作是

>逐行阅读excel文件并列出所有文档.
>取出文件名或文件路径.
>创建文件的完整路径.
>检查文件是否存在.
>验证文档中提供的其他元数据/信息.
>上载文件.

如果文件不存在或某些元数据无效,我的应用程序将引发异常.

excel文件是由客户编写的,他们写了一些错误的文件名,我的意思是,如果文件实际具有小写扩展名,则他们以大写形式写扩展名,反之亦然.

我在UNIX服务器上运行该应用程序.

由于文件扩展名不匹配,因此File#exists()给出了false,最终我的代码引发了异常.

放置文件的文件夹可以包含30000个或更多文件.

我想要的是

>获取文件的完整路径.
>检查文件是否存在.
>如果不存在,则
>通过转换扩展名的大小写检查文件是否存在.
>如果大小写转换后不存在,则抛出异常.
>如果存在,则返回实际的文件名或文件路径.

如果文件名具有.Jpg之类的文件扩展名,则不知道该怎么办!我是否应该通过更改大小写来检查它?

解决方法:

您可以使用以下命令获取文件夹中的文件名

File.list() 

并通过以下方式检查名称

equalsIgnoreCase()

或尝试http://commons.apache.org/io/
和使用

FileNameUtils.directoryContains(final String canonicalParent, final String canonicalChild)

标签:file-exists,java,case-insensitive,file,case-sensitive
来源: https://codeday.me/bug/20191014/1912435.html