Я разрабатываю приложение, в котором мне нужно искать файлы PDF во внутреннем хранилище, а также на съемной SD-карте. Это код, который я использую:
private void Search_Dir(File dir) {
try {
String pdfPattern = displayName; //(displayName = pdf_name.pdf)
File FileList[] = dir.listFiles();
if(FileList != null)
{
for(int i = 0 ; i < FileList.length ; i++)
{
if(FileList[i].isDirectory())
{
Search_Dir(FileList[i]);
}
else
{
if(FileList[i].getName().endsWith(pdfPattern))
{
path = FileList[i].toString();
}
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
Здесь путь - это строка, которая будет содержать путь к PDF-файлу, который я хочу найти. И имя PDF-файла, который я ищу: displayName
Я вызываю этот метод так:
Search_Dir(Environment.getExternalStorageDirectory());
Но, к сожалению, этот метод ищет PDF-файл только во внутренней памяти. Я определил READ_EXTERNAL_STORAGE и WRITE_EXTERNAL_STORAGE , и я также запрашиваю время выполнения этих разрешений.
Я не знаю, имеет ли это значение, но раньше он работал отлично. Я также получал путь к файлам PDF, расположенным на SD-карте. Но я сбросил заводские настройки на своем телефоне, а затем снова установил свое приложение. С тех пор он не работает.
Он работает с файлами, расположенными в моем внутреннем хранилище, например / storage / emulated / 0 / ....., но не на съемной SD-карте.
Мой вопрос: Что я делаю не так. Или есть какой-либо другой метод, который я должен использовать для поиска файлов, которые будут работать как на внутренней памяти, так и на съемной SD-карте.
Спасибо.