1

コードを機能させようとしています。目的は、特定のディレクトリに .XML ファイルがあるかどうかを確認することです。

これは私がこれまでに得たものです。

File f = new File("saves/*.xml");

    if(f.exists()) {
        /* Do Something */
    } else {
        /* do something else */
    }

ワイルドカードを使用して .XML で終わるファイルを検索しようとしていますが、何か単純なものが欠けていますか? 指定したディレクトリに少なくとも 1 つの .XML ファイルが存在することを確認する簡単な方法はありますか?

前もって感謝します。

4

6 に答える 6

9

これを使用できます:

    File dir = new File("saves");
    if (dir.isDirectory()) {
        File[] xmlFiles = dir.listFiles(new FilenameFilter() {

            @Override
            public boolean accept(File folder, String name) {
                return name.toLowerCase().endsWith(".xml");
            }
        });
    }

これで、すべての xml ファイルがFile[] xmlFiles.

于 2013-04-22T09:27:22.473 に答える
1

次のような PathMatcher を使用する必要があります。

PathMatcher matcher =
    FileSystems.getDefault().getPathMatcher("glob:*.{xml}");

Path filename = ...;
if (matcher.matches(filename)) {
    System.out.println(filename);
}

ここのOracleドキュメントから。そして、グロブとは何か疑問に思っているなら、ここで説明します。

于 2013-04-22T09:27:56.527 に答える
0

You can try using this code for your reference...

import java.io.*;

public class FindCertainExtension {

private static final String FILE_DIR = "FOLDER_PATH";
private static final String FILE_TEXT_EXT = ".xml";

public static void main(String args[]) {
    new FindCertainExtension().listFile(FILE_DIR, FILE_TEXT_EXT);
}

public void listFile(String folder, String ext) {

    GenericExtFilter filter = new GenericExtFilter(ext);

    File dir = new File(folder);

    if(dir.isDirectory()==false){
        System.out.println("Directory does not exists : " + FILE_DIR);
        return;
    }

    // list out all the file name and filter by the extension
    String[] list = dir.list(filter);

    if (list.length == 0) {
        System.out.println("no files end with : " + ext);
        return;
    }

    for (String file : list) {
        String temp = new StringBuffer(FILE_DIR).append(File.separator)
                .append(file).toString();
        System.out.println("file : " + temp);
    }
}

// inner class, generic extension filter
public class GenericExtFilter implements FilenameFilter {

    private String ext;

    public GenericExtFilter(String ext) {
        this.ext = ext;
    }

    public boolean accept(File dir, String name) {
        return (name.endsWith(ext));
    }
}
}

Hope it helps..

于 2013-04-22T09:29:19.797 に答える