Проверка наличия файла в android - PullRequest
1 голос
/ 05 апреля 2020

У меня есть файл EN.quickdic в расположении ниже

enter image description here

Если я проверю, существует ли файл -> Он всегда возвращает FALSE

    val dirPath: String = context.filesDir.absolutePath
    val filePath = dirPath.plus("/$Constants.DICTIONARY_FILE")
    // - > /data/user/0/com.cnx.dictionarytool/files/EN.quickdic
    val file = File(filePath)
    // Check if file does not exists
    if (file.exists()) {
           // -------------------- > This is still not true even if file is present
    }

Вопрос : Как проверить, существует ли файл там

Ответы [ 2 ]

0 голосов
/ 05 апреля 2020
  • У меня есть доступные разрешения времени выполнения
  • Я объявил разрешения в манифесте

Я использую следующий код:

fun isDictionaryExists(): Boolean {
        val isFileFound = false
        val externalStorageVolumes: Array<out File> = ContextCompat.getExternalFilesDirs(context, null)
        for (item: File in externalStorageVolumes) {
            val primaryExternalStorage = item
            Log.d("","")
            return traverseForCheckingTheFile(item)
        }
        return isFileFound
    }

private fun traverseForCheckingTheFile(dir: File): Boolean {
    if (dir.exists()) {
        val files = dir.listFiles()
        for (i in files.indices) {
            val file = files[i]
            if (file.isDirectory) {
                Log.d("","")
                traverseForCheckingTheFile(file)
            } else {
                Log.d("","")
                if(file.endsWith(DICTIONARY_FILE)){
                    //Dictionary file found
                    return true
                }
            }
        }
    }
    return false
}

Из словаря я звоню isDictionaryExists()

0 голосов
/ 05 апреля 2020

попробуйте проверить, что файл существует, как показано ниже

     public static boolean fileExists(File directory, String fileName)
{
    File file = new File(directory,fileName);
    if(file.exists())
    {
        return true;
    }
    else{
        return false;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...