私が選択したディレクトリに、名前の付いたすべてのファイルを検索しようとしています。 C:\Program Files
、またはC:\Users
のようなコードを私が使っているときに動作させます。しかし、私がするときc:/
私はごみ箱に立ち往生し、java.lang.NullPointerException
を取得し、c:\$Recycle.Bin\S-1-5-21-1478355014-127360780-1969717230-1002144
で停止します。アクセスできないファイルをバイパスするにはどうすればよいですか?
public void DirectorySerch(String target, String dirName){
File f = new File(dirName); System.out.println("H");
if(!f.isDirectory()){
throw new IllegalArgumentException("that is not a valid directory");
}
for(File folderItem : f.listFiles()){
if(folderItem.isDirectory()){
System.out.println(folderItem.getAbsolutePath());
if(!folderItem.equals("")){
DirectorySerch(target,folderItem.getPath());
}
// Return the result if it is not empty
/* if (!result.equals(folderItem.getName())){
files[filesFounfd] = folderItem.getAbsolutePath();
filesFounfd++;
}*/
}else{
if(folderItem.getName().equals(target)){
files[filesFounfd] = folderItem.getAbsolutePath();
System.out.println(folderItem.getAbsolutePath());
filesFounfd++;
}
}
}
}
ごみ箱を扱う必要がない場合にこの問題が発生しないようにするにはどうすればよいですか?
どのようにするために周りにtryキャッチをすることによってこの問題を解決することができ判明します)return; 'あなたのメソッドの始めに? –
コードがコンパイルされません - いくつかの変数宣言がありません。ヘルプが必要なので、コンパイルして実行できるコードを提供し、問題を示すサンプル入力を提供することで、人々が手助けをしやすくする必要があります。 NullPointerExceptionがどこから来たのかは決して言及していません。チャンスは、もしあなたがそれをしていれば、あなた自身ですでに問題を解決していたでしょう。 –