I am trying to make my file manager and have encountered such a problem. When I try to select a file, not a directory, my program crashes. You can tell how to make the program allow opening only directories. Specifically, I need to find out if there are any algorithms or methods for determining the file extension.
/*Класс который отвечает за работу файлового менеджера*/ public class FileManager extends AppCompatActivity implements AdapterView.OnItemClickListener { ListView listOfDirs; String [] paths = {"/storage/emulated/0/", "/storage/extSdCard/"}; String currentPath = ""; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_file_manager); listOfDirs = (ListView) findViewById(R.id.list); listOfDirs.setOnItemClickListener(this); ArrayAdapter<String> adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, paths); listOfDirs.setAdapter(adapter); } @Override public void onItemClick(AdapterView<?> adapterView, View view, int position, long id) { String localPath = paths[position];/*Здесь я определяю какую диру выбрал юзер и осуществляю переход в эту диру*/ transition(localPath);//Сам переход listOfDirs.setAdapter(new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, paths)); /*Вывод на экран директорий, находящихся по заданному пути*/ } void transition(String currentDirectory){ if(currentPath.equals("")){ //Проверяет установлен ли первичный путь currentPath = currentDirectory; } else { currentPath = currentPath + currentDirectory; } File file = new File(currentPath); paths = file.list();//Парсинг директории и занесение всех ее элементов в массив } }