1

是否有一种内置方法可以在 java 中获取计算机上的所有媒体文件(电影、音乐)?

4

2 回答 2

6

不,不是内置的。但是,您可以创建一个爬虫来扫描您的整个硬盘驱动器以查找具有某些扩展名(甚至更好,MIME 类型)的文件。

查看此答案以获得遍历目录的简单方法:https ://stackoverflow.com/a/3154523/691606

另请参阅从文件中获取 Mime 类型。基于其中显示的第 2 个(共 3 个)技术,是这样的:

import javax.activation.MimetypesFileTypeMap;
import java.io.File;

class MimeForMedia {

    public static void main(String[] args) {
        String[] types = {
            "png", "jpg", "gif", "tif", "bmp",  // image
            "snd", "wav", "mp3", "ogg", "au",   // sound
            "mov", "avi", "mpg", "flv"  // video
            };
        MimetypesFileTypeMap typeMap = new MimetypesFileTypeMap();
        for (String type : types) {
            String name = "a." + type;
            String bestType = typeMap.getContentType(name);
            if (bestType.equals("application/octet-stream")) {
                System.out.print( "Using URLConnection:  " );
                try {
                    bestType = (new File(name)).toURI().toURL()
                        .openConnection().getContentType();
                } catch(Exception e) {
                    System.out.println( e.getMessage() );
                }
            }
            System.out.println (type + "  " + bestType);
        }
    }
}

这是在 Windows 7 PC 上的结果。

Using URLConnection:  png  image/png
jpg  image/jpeg
gif  image/gif
tif  image/tiff
Using URLConnection:  bmp  content/unknown
Using URLConnection:  snd  audio/basic
wav  audio/x-wav
Using URLConnection:  mp3  content/unknown
Using URLConnection:  ogg  content/unknown
au  audio/basic
mov  video/quicktime
avi  video/x-msvideo
mpg  video/mpeg
Using URLConnection:  flv  content/unknown
Press any key to continue . . .
于 2012-05-04T17:06:25.660 回答
5

遍历文件系统的所有文件夹并查找具有所需扩展名的文件(如果有时间)。

于 2012-05-04T17:06:10.980 回答