Я пытаюсь написать метод с использованием Java, который будет рекурсивно искать .exe-файлы. Проблема, с которой я сталкиваюсь, заключается в том, когда дело доходит до каталога «C: \ Program Files (x86) \ Google \ CrashReports»Проблемы с разрешением файла Java
Кажется, что независимо от того, что я пытаюсь, я всегда получаю исключение NullPointerException из-за этого файла. Я попытался удостовериться, что я либо не добавляю его в список файлов, которые будут рекурсивно проверены, либо, по крайней мере, пропустить его, если он попадает в список файлов, подлежащих проверке.
В его нынешнем виде мой код неверен, однако это может быть вполне логичным ошибочным, я бы очень признателен за объяснение того, как Java считает, что он может читать этот файл.
private static List<String> exefiles = new ArrayList<String>();
public void findExe(File rootDir) throws SecurityException, IOException{
List<File> files = new ArrayList<File>(Arrays.asList(rootDir.listFiles()));
List<File> directories = new ArrayList<File>();
Iterator<File> iterator = files.iterator();
if(files.size() > 0){
while(iterator.hasNext()){
File currentFile = iterator.next();
if(currentFile.getName().endsWith(".exe")){
exefiles.add(currentFile.getAbsolutePath());
}else if(currentFile.isDirectory()){
if(currentFile.canRead()){
System.out.println("We can read " + currentFile.getAbsolutePath());
if(currentFile.listFiles().length > 0){
System.out.println(currentFile.getAbsolutePath() + " has a length greater than 0");
directories.add(currentFile);
}else{System.out.println(currentFile.getAbsolutePath() + " does not have any files in it");}
}else{
System.out.println("Could not add " + currentFile.getAbsolutePath() + " to directories because it could not be read");
}
}else;
}
}
Когда я открываю файлы свойств с Windows, система и группы администраторов имеют полный контроль, в то время как группа пользователей имеет только «специальные разрешения.»
Я знаю, что Java 7 предоставляет более простые способы обработки атрибутов через пакет java.nio.file, но этот вариант не подходит для моих нужд.
Почему вы в том числе, что 'еще,'? Какова полная трассировка стека исключения? – Jeffrey
Пожалуйста, разместите всю трассировку стека, а не просто общее описание проблемы, которую вы испытываете. – chrylis