我需要检查文件是否存在。这可以通过File#exists()
方法来完成。但是这种存在性检查是区分大小写的。我的意思是,如果我在代码中有一个文件名 some_image_file.jpg 但如果文件在物理上是 some_image_file.JPG 那么这个方法说该文件不存在。如何检查对扩展名不区分大小写的文件是否存在并获取实际文件名?
在我的场景中,我有一个 excel 文件。每行包含文件的元数据和文件名。在某些情况下我只有文件名或其他情况下我可以有完整路径。我将一行表示为文档。
这些文件被放置在服务器中。我的工作是
- 逐行读取excel文件并列出所有文档。
- 取出文件名或文件路径。
- 创建文件的完整路径。
- 检查文件是否存在。
- 验证文档中提供的其他元数据/信息。
- 上传文件。
如果文件不存在或某些元数据无效,我的应用程序会引发异常。
excel文件是客户写的,他们写错了一些文件名,我的意思是如果文件物理上有小写的扩展名,他们把扩展名写成大写,反之亦然。
我在 unix 服务器上运行应用程序。
由于文件扩展名不匹配,所以File#exists()
给出错误,最终我的代码抛出异常。
放置文件的文件夹可以有 30000 个或更多文件。
我想要的是
- 获取文件的完整路径。
- 检查文件是否存在。
- 如果它不存在,那么
- 通过转换扩展名的大小写来检查文件是否存在。
- 如果在大小写转换后不存在,则抛出异常。
- 如果存在,则返回实际的文件名或文件路径。
如果文件名具有类似.JPG的文件扩展名,不知道该怎么办!我应该通过改变大小写来检查它吗?