如何在android中检查文件扩展名

Nil*_*rma 43 android

在我的应用程序中,当我们从sdcard浏览文件时,文件将是.text,.jpg和mpeg4ie视频文件.我想将每种文件类型存储到特定文件夹中.例如,.text文件转到文本文件夹.我的问题是当我选择文件时,如何检查文件扩展名?

Mik*_*ini 65

我会将文件名作为String,将其拆分为带有"."的数组.作为分隔符,然后获取数组的最后一个索引,这将是文件扩展名.例如:

public class main {
    public static void main(String[] args) {
        String filename = "image.jpg";
        String filenameArray[] = filename.split("\\.");
        String extension = filenameArray[filenameArray.length-1];
        System.out.println(extension);
    }
}
Run Code Online (Sandbox Code Playgroud)

哪个输出:

jpg
Run Code Online (Sandbox Code Playgroud)

  • 我试图解决的问题是不要将正则表达式用于这样的简单任务,而不是错误检查. (5认同)

XXX*_*XXX 47

public static String getFileExt(String fileName) {
    return fileName.substring(fileName.lastIndexOf(".") + 1, fileName.length());
}
Run Code Online (Sandbox Code Playgroud)

  • @RoCK没有+1,例如,它是".jpg"而不是"jpg".注意点. (5认同)

小智 18

或者你可以这样做

MimeTypeMap.getFileExtensionFromUrl(myfile.toURL().toString());
Run Code Online (Sandbox Code Playgroud)

注意:这种方法虽然不是很可靠..

  • 因为不推荐使用File #toURL(),所以应该是myfile.toURI().toURL().toString() (2认同)

Phi*_*hil 14

您可以使用FilenameUtilsApache的百科全书:

String extension = FilenameUtils.getExtension(mFile.getName());
Run Code Online (Sandbox Code Playgroud)