これは自分のcomp内のすべてのファイルをカウントするコードです。コードは実行を停止せず、2000000を超えるファイルがあります。これは普通です、または無限ループのコードです。すべての助けをありがとう:)JAVAを使用しているコンピュータのすべてのファイルを見つける
import java.io.*;
import java.util.*;
//got the framework from this link: stackoverflow.com/questions/3154488
public class RFF {
public static void main(String [] args) {
File[] files = new File("/Users").listFiles();
showFiles(files);
System.out.println(size);
}
static File file1 = new File ("/Users/varun/Desktop/a.pdf");
static double size = file1.length();
static int i = 0;
public static void showFiles(File[] files) {
try {
for (File file: files) {
if (file.isDirectory()) {
if (file.isFile() == true)
i++;
else
i = i;
if (file.length() > size)
size = file.length();
System.out.println("FileCount: " + i + ">>> FileSize: " +file.length() + " >>> FileName: " + file.getName());
showFiles(file.listFiles()); // Calls same method again.
} else {
i++;
if (file.length() > size)
size = file.length();
System.out.println("FileCount: " + i + ">>> FileSize: " + file.length() + " >>> FileName: " + file.getName());
}
}
} catch (NullPointerException e) {
System.out.println ("Exception thrown :" + e);
}
}
}
100 IOPSをサポートしている回転ディスクを使用している場合、ファイルシステムに応じて2百万のファイルが約6時間かかることがあります。 –
あなたのファイルシステムに半分のファイルがありますか?そうでない場合は、なぜサイズの倍を使用しますか?私は何をすべきか?あなたのコードをきれいにしてください。必要がないときは静的変数を使用せず、コードを適切にインデントし、ブロックに命令が1つしかない場合でも中括弧をシステマティックに使用してください。そして、NullPointerExceptionをキャッチしないでください。 –
あなたのコードがショートカットをたどって「上に戻る」ことがあります。その時点で決して停止することはありません –