`
helin
  • 浏览: 151086 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

最简获取文件扩展名

    博客分类:
  • java
 
阅读更多
写道
fileName.replaceAll(".*\\.", "")
分享到:
评论
21 楼 greatghoul 2011-05-18  
感觉iteye里面的越来越多人喜欢扯蛋。。。
20 楼 greatghoul 2011-05-18  
duronshi 写道
freish 写道
获取扩展名有啥意义?



赞同,楼主这样获取文件扩展名有何意义?

如果一个exe文件,我将文件后缀改成jpg,那按楼主的方法获取到的是什么?exe or jpg?

如果真的想获取文件扩展名,建议通过文件头里面的标识来获取,可能正确性会高一点。


文件头里的标识不见得就是文件的真实扩展名,这种方法很不准确吧。
19 楼 greatghoul 2011-05-18  
yangyi 写道
性能和可读性俱不佳

觉得这方法挺不错,也没有觉得可读性有什么差的,退一步讲,即便差,加个注释就好了。

要说性能吧,那要看什么场景了,脱离的应用场景空谈性能也没有什么意思。

好用就行了。
18 楼 duronshi 2011-05-18  
freish 写道
获取扩展名有啥意义?



赞同,楼主这样获取文件扩展名有何意义?

如果一个exe文件,我将文件后缀改成jpg,那按楼主的方法获取到的是什么?exe or jpg?

如果真的想获取文件扩展名,建议通过文件头里面的标识来获取,可能正确性会高一点。
17 楼 xiaobao0501 2011-05-12  
org.apache.commons.lang.StringUtils.substringAfterLast("index.htm", ".") ;
16 楼 luciferdevil 2011-05-12  
田智伟 写道
貌似可以使用String的 endWith不是来个更简洁?

for example?
15 楼 田智伟 2011-05-12  
貌似可以使用String的 endWith不是来个更简洁?
14 楼 zhkchi 2011-05-12  
你们老是喜欢喷别人嘛?
13 楼 lyy3323 2011-05-12  
indexOfExtension 方法呢,老兄?
12 楼 guoqingcun 2011-05-12  
    /**
     * Gets the extension of a filename.获取文件名
     * <p>
     * This method returns the textual part of the filename after the last dot.
     * There must be no directory separator after the dot.
     * 文件名例子:
     * foo.txt      --> "txt"
     * a/b/c.jpg    --> "jpg"
     * a/b.txt/c    --> ""
     * a/b/c        --> ""
     * <p>
     * The output will be the same irrespective of the machine that the code is running on.
     *
     * @param filename the filename to retrieve the extension of.
     * @return the extension of the file or an empty string if none exists or <code>null</code>
     * if the filename is <code>null</code>.
     */
   
public static String getExtension(String filename) {
        if (filename == null) {
            return null;
        }
        int index = indexOfExtension(filename);
        if (index == -1) {
            return "";
        } else {
            return filename.substring(index + 1);
        }
    }

----------------------------------------------------------------------------------
    /**
     * Returns the index of the last extension separator character, which is a dot.最后"."位置
     * <p>
     * This method also checks that there is no directory separator after the last dot.
     * To do this it uses {@link #indexOfLastSeparator(String)} which will
     * handle a file in either Unix or Windows format.
     * <p>
     * The output will be the same irrespective of the machine that the code is running on.
     *
     * @param filename  the filename to find the last path separator in, null returns -1
     * @return the index of the last separator character, or -1 if there
     * is no such character
     */
   public static int indexOfExtension(String filename) {
        if (filename == null) {
            return -1;
        }
        int extensionPos = filename.lastIndexOf(EXTENSION_SEPARATOR);
        int lastSeparator = indexOfLastSeparator(filename);
        return (lastSeparator > extensionPos ? -1 : extensionPos);
    }

------------------------------------------------------------------------------------------
    /**
     * Returns the index of the last directory separator character.最后目录分割符位置(unix or window)
     * <p>
     * This method will handle a file in either Unix or Windows format.
     * The position of the last forward or backslash is returned.
     * <p>
     * The output will be the same irrespective of the machine that the code is running on.
     *
     * @param filename  the filename to find the last path separator in, null returns -1
     * @return the index of the last separator character, or -1 if there
     * is no such character
     */
  
 public static int indexOfLastSeparator(String filename) {
        if (filename == null) {
            return -1;
        }
        int lastUnixPos = filename.lastIndexOf(UNIX_SEPARATOR);
        int lastWindowsPos = filename.lastIndexOf(WINDOWS_SEPARATOR);
        return Math.max(lastUnixPos, lastWindowsPos);
    }
11 楼 zhang34082 2011-05-12  
刚翻了下开源包commons-io-1.4.jar中FilenameUtils类中取扩展名的实现
public static String getExtension(String filename)
  {
    if (filename == null) {
      return null;
    }
    int index = indexOfExtension(filename);
    if (index == -1) {
      return "";
    }
    return filename.substring(index + 1);
  }
10 楼 003 2011-05-12  
pollyduan 写道
yangyi 写道
性能和可读性俱不佳

还不如fileName.substring(fileName.lastIndexOf(".")+1)来的痛快。

痛快是痛快了,但是当心异常,哈哈,遇上系统文件hosts就崩了
9 楼 nakupanda 2011-05-12  
怎么写直观性能又好呢 ?
8 楼 Reset 2011-05-12  
楼主刚学会正则 写的一个“Hello, World”鉴定完毕
7 楼 freish 2011-05-12  
获取扩展名有啥意义?
6 楼 pollyduan 2011-05-12  
yangyi 写道
性能和可读性俱不佳

还不如fileName.substring(fileName.lastIndexOf(".")+1)来的痛快。
5 楼 NanguoCoffee 2011-05-12  
helin 写道
grandboy 写道
helin 写道
暂不追求速度。

不追求速度,可读性又不好,为什么要这么写呢?要是我们的员工写成这样,肯定被我骂的。


你会要求你的员工对这句话也加注释吗?



别人说的意思是不能这样获取后缀。
而你的回答却是以这行代码为前提。


4 楼 helin 2011-05-12  
grandboy 写道
helin 写道
暂不追求速度。

不追求速度,可读性又不好,为什么要这么写呢?要是我们的员工写成这样,肯定被我骂的。


你会要求你的员工对这句话也加注释吗?
3 楼 grandboy 2011-05-12  
helin 写道
暂不追求速度。

不追求速度,可读性又不好,为什么要这么写呢?要是我们的员工写成这样,肯定被我骂的。
2 楼 helin 2011-05-12  
暂不追求速度。

相关推荐

    VB简单获取文件扩展名.rar

    VB简单获取文件扩展名,用法很简单:选择要获得扩展名的文件,点击操作按钮,最后就显示文件的扩展名了,简要说一下原理:从文件名的长度到文件名的第一个字符作循环,如果当前的字符是".",设置变量Ext的值为i,...

    php简单获取文件扩展名的方法.doc

    php简单获取文件扩展名的方法.doc

    php获取文件的后缀名

    在PHP中,获取文件后缀名通常可以通过字符串操作函数来完成,其中最常用的是`strrpos()`和`substr()`这两个函数。`strrpos()`函数用于查找字符串最后一次出现的位置,而`substr()`则用于截取字符串的一部分。具体...

    获取文件扩展名(文件名已知)

    这是一个简单的小程序,一直文件的全名,然后通过C语言编程获取它的扩展名

    易语言获取网络文件的后缀名

    文件后缀名,也称为文件扩展名,是文件名中用于标识文件类型的部分,例如.txt、.docx、.jpg等。在操作系统中,后缀名通常用来决定如何处理一个文件,比如应该用哪个应用程序打开它。 在易语言中,实现这个功能需要...

    遍历文件夹获取后缀名

    在IT领域,特别是软件开发中,经常会遇到需要遍历文件夹并获取文件后缀名的情况。本文将详细介绍如何实现这一功能,并通过提供的代码片段进行深入分析。 #### 核心知识点一:获取文件标题与后缀名 在给出的代码...

    根据后缀名获取文件列表

    这个过程可以通过编程实现,下面将详细讲解如何根据后缀名获取文件列表。 首先,我们需要了解什么是文件后缀名。文件后缀名是文件名的一部分,位于文件名和其扩展名之间的点字符"."之后。它通常用来标识文件的类型...

    C#遍历文件夹下文件修改后缀名

    对于每个文件,我们通过`Path.GetFileNameWithoutExtension()`方法获取文件名(不包括后缀),然后拼接新的后缀名得到新文件名。`Path.Combine()`用于构建新文件的完整路径。最后,我们使用`File.Move()`方法移动...

    bat文件-文件后缀自动识别

    如果有参数,`for %%i in (%*) do`循环遍历所有拖放的文件,`%%~xi`获取文件的扩展名,`%%~ni`获取文件的基本名(不包含扩展名)。然后通过`echo`命令输出相关信息。 **CMD命令行** 在Windows环境中,cmd.exe是...

    获取FileUpLoad扩展名

    - 首先使用`System.IO.Path.GetExtension`获取文件扩展名。 - 使用`ToLower()`方法将扩展名转换为小写,以便于比较。 - 判断扩展名是否为`.xls`或`.xlsx`。 - 如果不符合条件,则显示错误消息并提前退出方法。 ####...

    文件后缀名查询器——一个小软件

    文件后缀名,也称为文件扩展名,是操作系统用来标识文件类型的重要信息。在计算机世界里,各种类型的文件都有其特定的后缀名,比如文本文件的".txt",图片文件的".jpg"或".png",程序文件的".exe"等。文件后缀名查询...

    批量修改文件后缀名

    如果文件的当前扩展名与新的扩展名不同,我们就使用`MoveTo`方法将文件移动到新位置(这实际上就是更改文件名)并打印一条消息。 需要注意的是,批量修改文件后缀名可能会对文件内容产生影响,特别是当不同格式的...

    php简单获取文件扩展名的方法

    在PHP编程中,获取文件扩展名是一项常见的任务,特别是在处理上传文件、文件操作或路径解析时。本篇文章将深入探讨如何使用PHP简单有效地获取文件扩展名,并提供一个实用的函数示例来帮助开发者理解这一过程。 文件...

    批量修改文件后缀名(源码)

    在这个场景中,"批量修改文件后缀名(源码)"是一个用VS2008开发的程序,它允许用户一次性更改多个文件的扩展名。这样的工具对于整理文件库,统一文件格式,或者进行特定的数据转换都十分有用。 VS2008,全称Visual...

    vb.net中去掉文件名中的扩展名

    这意味着循环将在遇到第一个`.`时停止,即文件扩展名的起始位置。 3. **返回结果**:`Filename2 = Left(PathName, x - 1)`这行代码用于获取从文件名的起始位置到`.`之前的字符串,并作为函数的返回值。这里使用了`...

    Java获取文件的类型和扩展名的实现方法

    // 使用substring方法获取文件扩展名 // fileName.lastIndexOf(".")找到最后一个"."的位置,截取从该位置到字符串末尾的部分 String fileType = fileName.substring(fileName.lastIndexOf(".") + 1, fileName....

    delphi 更改文件扩展名

    在Delphi编程环境中,更改文件扩展名是一项常见的操作,尤其在创建临时文件、加密或混淆文件格式时。本文将深入探讨如何使用Delphi来实现这一功能,并分享一些相关的编程技巧和注意事项。 首先,理解文件扩展名的...

    修改文件后缀名

    3. **检查和修改后缀名**:对每个`FileInfo`对象,使用`FileName`属性获取文件名(包括扩展名),然后使用`Replace()`方法找到最后一个"."并替换为新的后缀名。例如,`fileName.Replace(".old", ".new")`将".old...

    PHP获取文件扩展名的4种方法

    首先,方法一通过自定义函数get_ext来实现获取文件扩展名。这个函数通过explode函数以点号(".")作为分隔符将文件名分割成数组,然后利用array_pop函数取出数组中的最后一个元素,也就是文件的扩展名。这种方法简单...

Global site tag (gtag.js) - Google Analytics