Я пытаюсь найти все файлы, которые были названы, в выбранном мной каталоге. Код, который у меня есть, работает, когда я делаю что-то вроде 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++;
}
}
}
}
Что я могу сделать, чтобы не получить этот вопрос, как он работает в тех случаях, когда не приходится иметь дело с корзиной?
Как насчет добавления ', если («$ Recycle.Bin».equals (Dirname)) return; 'к началу вашего метода? –
Ваш код не скомпилирован - несколько объявлений переменных отсутствуют. Вам нужна помощь, поэтому вам должно помочь людям помочь вам, предоставив код, который можно скомпилировать и выполнить, с образцом ввода, который демонстрирует ваши проблемы. Вы также никогда не упоминали, откуда происходит исключение NullPointerException. Скорее всего, если вы это сделали, вы бы уже решили проблему самостоятельно. –