有什麼方法可以在Java中隨機生成任意文件路徑?生成隨機文件路徑Java
我一直在想的是,也許我可以從預先選擇的數組中選出一個,但那不會是非常隨機的。或者我可以從C:\開始,從0到文件夾數量中隨機選擇一個數字;如果它是0,我選擇C:\,否則我選擇與隨機數對應的文件夾。沖洗並重復,直到它擊中0.
我不覺得這些是最好解決方案,所以任何幫助,將不勝感激。
有什麼方法可以在Java中隨機生成任意文件路徑?生成隨機文件路徑Java
我一直在想的是,也許我可以從預先選擇的數組中選出一個,但那不會是非常隨機的。或者我可以從C:\開始,從0到文件夾數量中隨機選擇一個數字;如果它是0,我選擇C:\,否則我選擇與隨機數對應的文件夾。沖洗並重復,直到它擊中0.
我不覺得這些是最好解決方案,所以任何幫助,將不勝感激。
下面是一個例子,讓你開始:
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%的人:-)
感謝您的提示!真的有幫助:) – phlip9
你能解釋它是如何工作的 –
創建MD5 Hash並用它作爲目錄
通過提「最好的」你可能會意味着你希望文件夾選擇要公平以某種方式,比如PE可能基於其中的文件的數量或大小。你只能這樣做,如果你知道完整的細節開始。否則,我會在每個級別的建議下進行遞歸選擇。
你的意思是一個*存在*文件的隨機路徑? – aioobe
這樣做的意義何在? –
我能想到做這樣的事情的唯一原因是創建惡意軟件,這是什麼? – Ali