私は現在 File::Basename fileparse を使用して、ファイルのディレクトリ、ベースファイル名、およびその拡張子を次のようなものを使用して分離しています。
my($myfile_name,$mydirectory, $file_extension) = fileparse($$rhash_params{'storage_full_path_location'},'\..{1,4}');
しかし、関数にサフィックスの配列を実際に提供できるバリエーションがあることを確認してください。配列には、既知のファイル拡張子がすべて含まれます。
だから私はこれを行うための安全な方法を見つけようとしています.file.0f1.htmなどの奇妙なファイル名を処理する必要があることがわかりました.
質問:
- Windows および Unix システムで一般的に使用される拡張機能のリストはありますか? しかし、私の場合、それは主にWindows用です。
- また、Windows のすべてのファイル名には 3 文字で終わる拡張子が必要であると想定しても安全でしょうか?
そして、これを行うためのさらに良い方法があれば、共有してください.
ありがとう。
アップデート:
だから明らかに私は酔っているにちがいありません。:) したがって、現在の正規表現を更新して、1〜4文字を許可しました。
この場合、適切に一致するように正規表現行を変更するにはどうすればよいですか? それとも、Google から一般的に使用されるすべての拡張機能を探して、それらを配列に入れて代わりに関数に渡すことをお勧めしますか? 私のユーザーは通常、学生か教師のどちらかです。