生成随机文件路径Java

时间:2011-09-11 09:32:53

标签: java file random path

有没有办法在Java中随机生成任意文件路径?

我一直在想的是,也许我可以选择一个预先选定的阵列中的一个,但这不会是非常随机的。或者我可以从C:\开始,从0到文件夹的数量选择一个随机数;如果它是0,我选择C:\,否则我选择与随机数对应的文件夹。冲洗并重复直至达到0。

我觉得这些是最佳解决方案,所以任何帮助都会受到赞赏。

3 个答案:

答案 0 :(得分:1)

这是一个让你入门的例子:

import java.io.File;
import java.util.*;

class Test {

    private static Random r = new Random();

    public static File getRandomFileIn(File f) {

        File[] subs = f.listFiles();

        if (f.isFile() || f.list().length == 0)
            return f;

        List<File> subDirs = new ArrayList<File>(Arrays.asList(subs));

        Iterator<File> files = subDirs.iterator();
        while (files.hasNext())
            if (!files.next().isDirectory())
                files.remove();

        while (!subDirs.isEmpty()) {
            File rndSubDir = subDirs.get(r.nextInt(subDirs.size()));
            File rndSubFile = getRandomFileIn(rndSubDir);
            if (rndSubFile != null)
                return rndSubFile;
            subDirs.remove(rndSubDir);
        }

        return null;
    }

    public static void main(String[] args) {

        File[] roots = File.listRoots();
        File rndFile = getRandomFileIn(roots[r.nextInt(roots.length)]);

        System.out.println(rndFile);
    }
}

看到一些随机文件真的很有趣......我不知道大约90%的文件: - )

答案 1 :(得分:0)

创建MD5 Hash并将其用作目录

答案 2 :(得分:0)

通过提及'best',您可能意味着您希望文件夹选择以某种方式 fair ,例如可能基于内部文件的数量或大小它。如果您知道完整的详细信息,则只能这样做。否则,我会在每个级别的建议中使用递归选择。