【问题标题】:How to get all the media files on a computer如何获取计算机上的所有媒体文件
【发布时间】:2012-05-14 06:05:39
【问题描述】:

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

【问题讨论】:

    标签: java file java-io


    【解决方案1】:

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

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

    另见Get the Mime Type from a File。基于其中显示的 1st 2 (of 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 . . .
    

    【讨论】:

    • "(或者更好的是,MIME 类型)。" 好主意,但是什么 J2SE 类提供了 MIME/内容类型?我在FileFileSystemView 中看不到任何内容。
    • 您很可能需要一个外部库。查看rgagnon.com/javadetails/java-0487.html 获取一些示例。
    • 谢谢,我试试这个方法!
    • 我添加了一些我发现在以下方面令人惊讶的代码/输出。 1) PNG 不在地图中。 2) TIFF 是。 3) BMP 在地图或URLConnection 中均未被识别。 4) MP3 不被任何人识别。呵呵。
    • 哇,非常感谢。这应该比我通过查看扩展所做的方法要好得多!
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-07-27
      • 1970-01-01
      • 2021-10-12
      • 1970-01-01
      • 1970-01-01
      • 2011-01-22
      • 2012-06-08
      • 1970-01-01
      相关资源
      最近更新 更多