我目前正在使用File :: Basename fileparse来分离文件的目录,基本文件名及其扩展名,使用类似这样的内容:
my($myfile_name,$mydirectory, $file_extension) = fileparse($$rhash_params{'storage_full_path_location'},'\..{1,4}');
但是看到有一个变体你可以实际为函数提供一个后缀数组,该数组将包含所有已知的文件扩展名。
所以我试图找到一种安全的方法,因为我已经看到我有一些奇怪的文件名要处理,即file.0f1.htm等。
如果还有更好的方法,请分享。
感谢。
显然我必须喝醉才能忘记其他扩展。 :) 因此,我已经更新了当前正则表达式以允许1-4chars。
在这种情况下,我应该如何更改我的正则表达式线以正确匹配它? 或者更好的想法是从谷歌中寻找所有常用的扩展并将它们放入一个数组中以传递给函数?我的用户通常是学生或老师。
答案 0 :(得分:3)
1
。是否有Windows和Unix常用扩展名列表 系统?但在我的情况下,它主要是 对于Windows。
是的,加载,遍布互联网:http://www.google.com/search?q=common+file+extensions
2
。假设Windows中的所有文件名都应该是安全的 以三个字母结尾的扩展名 字符?
不,完全可以在Windows中使用'.c'
,'.java'
等。
答案 1 :(得分:1)
您的代码中有几个错误假设: