Java的清单在目录中的文件 [英] Java Listing files in directory

查看:204
本文介绍了Java的清单在目录中的文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图让所有的M​​P3文件列表中的一个目录(在小程序的目录下的子目录命名的音乐),这样我可以那么它们在JavaScript函数的名称将它们推到一个数组。

一切正常,但在上市过程......它只有在目录中返回的第一个MP3文件,而不是其他的...

这是我的code

JAVA:

 进口java.applet.Applet中;
进口的java.io.File;
进口java.net.MalformedURLException;
进口的java.net.URL;公共类主要扩展的Applet {
    私有静态最后的serialVersionUID长1L =;
    公共无效的init(){
        文件[] = LIB的GetFiles(新文件((得到codeBase的()+文件分割符+音乐)子(6)));
        对于(文件■:LIB){
            如果(。s.getName()子(s.getName()长() - 3).equalsIgnoreCase(MP3)){
                尝试{getAppletContext()showDocument(新URL(JavaScript的:addSong('+ s.getName()+')));}
                赶上(MalformedURLException的我){}
            }
        }
        尝试{getAppletContext()showDocument(新URL(JavaScript的:的init()));}
        赶上(MalformedURLException的我){}
    }
    公共文件[]的GetFiles(文件目录){
        返回dir.listFiles();
    }
}

JavaScript的:

 函数addSong(S){
    //添加到阵列
    window.songs.push(音乐/+ S);
    //调试信息
    警报(S);
}功能的init(){
//随机code到initialze音乐播放器
//获取和从中得到的内容形式addSong歌曲挂牌值()
}


解决方案

要列出(递归)在一个给定的目录我这下code的所有文件(以.mp3扩展名):

 进口的java.io.File;
进口java.io.FileNotFoundException;
进口的java.util.ArrayList;
进口java.util.Arrays中;
进口的java.util.List;公共类FileLister {    私人列表<文件> getFileList(文件startingDir)抛出FileNotFoundException异常{
        清单<文件>结果=新的ArrayList<文件>();
        文件[] = filesAndDirs startingDir.listFiles();
        清单<文件> filesDirs = Arrays.asList(filesAndDirs);
        对于(文件文件:filesDirs){
            result.add(文件);
            如果(!file.isFile()){
                清单<文件> deeperList = getFileList(文件);
                result.addAll(deeperList);
            }
        }        返回结果;
    }    公共静态无效的主要(字串[] args)抛出FileNotFoundException异常{
        对于(文件文件:新FileLister()getFileList(新文件(D:\\\\音乐))){
            如果(file.getName()。包含(。)){
                字符串延长= file.getName()子(file.getName()lastIndexOf(),file.getName()长()。)。
                如果(extension.equalsIgnoreCase(MP3)){
                    的System.out.println(file.getName());
                }
            }
        }
    }
}

I'm trying to get a list of all mp3 files in a directory (the subdir named music in the directory of the applet) so that I then can their names in a JavaScript function to push them into an array.

Everything works, but the listing process... It only return the very first mp3 file in the directory, not the other ones...

This is my code

JAVA:

import java.applet.Applet;
import java.io.File;
import java.net.MalformedURLException;
import java.net.URL;

public class Main extends Applet {
    private static final long serialVersionUID = 1L;
    public void init() {
        File[] lib = getFiles(new File((getCodeBase() + File.separator + "music").substring(6)));
        for (File s:lib) {
            if (s.getName().substring(s.getName().length() - 3).equalsIgnoreCase("mp3")) {
                try {getAppletContext().showDocument(new URL("javascript:addSong('"+s.getName()+"')"));}
                catch (MalformedURLException me) {}
            }
        }
        try {getAppletContext().showDocument(new URL("javascript:init()"));}
        catch (MalformedURLException me) {}
    }
    public File[] getFiles(File dir) {
        return dir.listFiles();
    }
}

JavaScript:

function addSong(s) {
    // Adding to array
    window.songs.push("music/" + s);
    // Debug message
    alert(s);
}

function init() {
// Random code to initialze music player
// getting and listing values from "songs" which got content form addSong()
}

解决方案

To list(recursively) all files(with .mp3 extension) in a given directory I have this following code:

import java.io.File;
import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class FileLister {

    private List<File> getFileList(File startingDir) throws FileNotFoundException {
        List<File> result = new ArrayList<File>();
        File[] filesAndDirs = startingDir.listFiles();
        List<File> filesDirs = Arrays.asList(filesAndDirs);
        for (File file : filesDirs) {
            result.add(file); 
            if (!file.isFile()) {               
                List<File> deeperList = getFileList(file);
                result.addAll(deeperList);
            }
        }

        return result;
    }

    public static void main(String[] args) throws FileNotFoundException {
        for(File file : new FileLister().getFileList(new File("D:\\Music"))){
            if(file.getName().contains(".")) {
                String extension = file.getName().substring(file.getName().lastIndexOf("."), file.getName().length());
                if(extension.equalsIgnoreCase(".mp3")) {
                    System.out.println(file.getName());
                }
            }
        }
    }
}

这篇关于Java的清单在目录中的文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆