2016-02-10 5 views
0

Я разрабатываю приложение для Android. Я все еще изучаю андроид. Но у меня проблема с проверкой файла в папке загрузки существует или нет. Он всегда возвращает false. Но файл фактически существует.Проверка файла существует или нет в android не работает

Это функция для проверки файл существует или нет в CommonHelper классе

public static boolean fileExists(String path) 
    { 
     File file = new File(path); 
     if(file.exists()) 
     { 
      return true; 
     } 
     else{ 
      return false; 
     } 
    } 

Это, как я проверяю файлы во встроенном в папке загрузки

if(CommonHelper.fileExists(String.valueOf(Environment.DIRECTORY_DOWNLOADS)+"/"+cursor.getString(1))) 
    { 
     //do other stuffs here 
    } 

Что случилось с моим кодом?

+0

Каков результат 'Environment.DIRECTORY_DOWNLOADS) +"/"+ cursor.getString (1)'? Действительно ли это полный путь к вашему файлу? Возможно, вам не хватает расширения файла? – AlbAtNf

+0

Это что-то вроде этого Загрузка/5391454763980398.mp3 и файл существует на самом деле. –

ответ

1

Проблема в том, что вы не получаете полный путь.

Попробуйте получить путь с Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS)

public static boolean fileExists(File path, String filename){ 
     return new File(path, filename).exists(); 
} 

И тогда звоните:

CommonHelper.fileExists(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS), cursor.getString(1)); 

EDIT: Обратите внимание, что getExternalStoragePublicDirectory также может быть что-то еще, как getExternalStorageDirectory() в зависимости, от того, где на самом деле сохранил ваш файл.

0

попробовать это

if(CommonHelper.fileExists(new File(Environment.DIRECTORY_DOWNLOADS),cursor.getString(1))) 
{ 
    //do other stuffs here 
} 

и

public static boolean fileExists(File directory, String fileName) 
{ 
    File file = new File(directory,fileName); 
    if(file.exists()) 
    { 
     return true; 
    } 
    else{ 
     return false; 
    } 
} 
+0

Хей не может передать Environment.DIRECTORY_DOWNLOADS в качестве первого аргумента. Я думаю, что это не тип файла. –

+0

Спасибо. Но я только что получил ответ. –

0

Попробуйте это:

File file = getContext().getFileStreamPath(file_name);  
    if(file.exists()){ 

    FileInputStream fileIn= new FileInputStream(file); 
    ... 
    } 
0

вы должны добавить имя файла в пути при создании файла ... Пожалуйста, попробуйте как указано ниже.

File file = new File(storagePath + "/" + fileName); 
if (file.exists()) { 
    return true; 
} 
else 
{ 
return false; 
} 
+0

С моим кодом, Это что-то вроде этого Загрузка/5391454763980398.mp3 и файл существует на самом деле. –

+0

, тогда file.exists() должен возвращать true .... –

-1
File file = new File(Environment.getExternalStorageDirectory() + "/filename"); 

if(file.exists){ 
    return true; 
}else{ 
return false; 
} 
Смежные вопросы