我目前正在使用 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 中的所有文件名都应具有以三个字母字符结尾的扩展名?
如果有更好的方法可以做到这一点,请分享。
谢谢。
更新:
所以很明显我必须喝醉了才能忘记那些其他的扩展。:) 因此,我更新了当前的正则表达式以允许 1-4 个字符。
在这种情况下,我应该如何更改我的正则表达式行以正确匹配它?或者从谷歌查找所有常用的扩展并将它们放入一个数组中以传递给函数是一个更好的主意吗?我的用户通常是学生或老师。