ファイルが存在するかどうかを確認する必要があります。これは方法によって達成できますFile#exists()
。ただし、この存在チェックでは大文字と小文字が区別されます。つまり、コードにファイル名 some_image_file.jpg がある場合、物理的にファイルが some_image_file.JPG である場合、このメソッドはファイルが存在しないことを示します。拡張子の大文字と小文字を区別せずにファイルの存在を確認し、実際のファイル名を取得するにはどうすればよいですか?
私のシナリオでは、Excel ファイルがあります。各行には、ファイルとファイル名のメタデータが含まれています。場合によっては、ファイル名しかない場合もあれば、フル パスを使用できる場合もあります。行をドキュメントとして示しています。
これらのファイルはサーバーに配置されます。私の仕事は
- Excel ファイルを 1 行ずつ読み、すべてのドキュメントを一覧表示します。
- ファイル名またはファイルパスを取り出します。
- ファイルのフル パスを作成します。
- ファイルが存在するかどうかを確認します。
- ドキュメントで提供されているその他のメタデータ/情報を検証します。
- ファイルをアップロードします。
ファイルが存在しない場合、または一部のメタデータが無効な場合、アプリケーションは例外をスローします。
Excel ファイルはお客様が作成したもので、一部のファイル名が間違っています。つまり、ファイルの拡張子が物理的に小文字である場合、拡張子は大文字で書かれており、その逆も当てはまります。
UNIXサーバーでアプリケーションを実行しています。
ファイル拡張子が一致していないため、File#exists()
false が返され、最終的にコードが例外をスローしています。
ファイルが配置されるフォルダーには、30000 以上のファイルを含めることができます。
私が欲しいのは
- ファイルのフル パスを取得します。
- ファイルが存在するかどうかを確認します。
- 存在しない場合
- 拡張子の大文字と小文字を変換してファイルの存在を確認します。
- ケース変換後に存在しない場合は、例外をスローします。
- 存在する場合は、実際のファイル名またはファイル パスを返します。
ファイル名に.Jpgのようなファイル拡張子が付いている場合、どうすればよいかわかりません! 大文字と小文字を変えて並べ替えて確認する必要がありますか?