Проверьте, существует ли каталог на SD-карте Android - PullRequest
52 голосов
/ 13 апреля 2010

Как проверить, существует ли каталог на SDCard в Android?

Ответы [ 6 ]

115 голосов
/ 13 апреля 2010

Обычный файл ввода-вывода Java:

File f = new File(Environment.getExternalStorageDirectory() + "/somedir");
if(f.isDirectory()) {
   ....

Может также захотеть проверить f.exists(), потому что, если он существует, и isDirectory() возвращает false, у вас возникнет проблема. Там также isReadable() ...

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

39 голосов
/ 13 апреля 2010
File dir = new File(Environment.getExternalStorageDirectory() + "/mydirectory");
if(dir.exists() && dir.isDirectory()) {
    // do something here
}
12 голосов
/ 19 июля 2013

Следующий код также работает для файлов Java:

// Create file upload directory if it doesn't exist    
if (!sdcarddir.exists())
   sdcarddir.mkdir();
1 голос
/ 09 сентября 2015

Общее использование этой функции для проверки наличия Dir:

public boolean dir_exists(String dir_path)
  {
    boolean ret = false;
    File dir = new File(dir_path);
    if(dir.exists() && dir.isDirectory())
      ret = true;
    return ret;
  }

Используйте функцию как:

String dir_path = Environment.getExternalStorageDirectory() + "//mydirectory//";

if (!dir_exists(dir_path)){
  File directory = new File(dir_path); 
  directory.mkdirs(); 
}

if (dir_exists(dir_path)){
  // 'Dir exists'
}else{
// Display Errormessage 'Dir could not creat!!'
}
1 голос
/ 28 октября 2011

Я допустил ошибку при проверке файла / каталога. В самом деле, вам просто нужно позвонить isFile() или isDirectory(). Вот документы

Вам не нужно звонить exists(), если вы когда-либо звоните isFile() или isDirectory().

0 голосов
/ 25 января 2017

Да много пробовал, мне помогает код ниже :)

 File folder = new File(Environment.getExternalStorageDirectory() + File.separator + "ur directory name");

                if (!folder.exists()) {
                    Log.e("Not Found Dir", "Not Found Dir  ");
                } else {
                    Log.e("Found Dir", "Found Dir  " );
                   Toast.makeText(getApplicationContext(),"Directory is already exist" ,Toast.LENGTH_SHORT).show();
                }
...