Существует готовый написанный графический интерфейс с помощью которого пользователь выбирает директорию для поиска, и вписывает название файла для поиска в этой директории и его поддиректориях.
Для реализации задачи необходимо пользоваться fork()
и join()
.
К сожалению, при выполнении задачи происходит бесконечный поиск по первой указанной директории, а поддиректории не затрагиваются.
public class mainController {
private void search() {
ForkJoinPool forkJoinPool = new ForkJoinPool();
// chosenDirectory - директория, которую выбрал пользователь для поиска в ней файла.
MyRecursiveTask myRecursiveTask = new MyRecursiveTask(chosenDirectory);
forkJoinPool.invoke(myRecursiveTask);
}
}
public class MyRecursiveTask extends RecursiveTask<File> {
private File directory;
public MyRecursiveTask(File directory) {
this.directory = directory;
}
mainController mainController = new mainController();
@Override
protected File compute() {
String filename = mainController.getFilename();
File directory = mainController.getFilepath();
//список подзадач
List<MyRecursiveTask> subtasks = new LinkedList<>();
File result = null;
if(directory.listFiles() !=null && directory.isDirectory()) {
for(File el: directory.listFiles()) {
if(el.getName().equals(filename)) result = el;
else if(el.isDirectory() && el.listFiles() != null){
MyRecursiveTask subTask = new MyRecursiveTask(el);
subTask.fork();
subtasks.add(subTask);
}
}
for (MyRecursiveTask a: subtasks){
result = a.join();
}
}
return result;
}
}
Виртуальный выделенный сервер (VDS) становится отличным выбором
Нужно чтобы SearchView уходила наверх при движении BottomSheet
Всем доброго времени сутокЯ пишу приложение, в котором нужно подключиться к FTP серверу
Не могу понять как сделать выделенный элемент с перетеканием цвета из красного в черныйНужно ли использовать background-image или можно обойтись...