web-dev-qa-db-ja.com

AndroidのSDカードにディレクトリが存在するかどうかを確認します

AndroidのSDカードにディレクトリが存在するかどうかを確認するにはどうすればよいですか?

52
Alxandr

通常JavaファイルIO:

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

f.exists()もチェックしたい場合があります。存在する場合、isDirectory()はfalseを返すため、問題が発生します。 isReadable()...もあります.

here をチェックすると、役に立つと思われる他のメソッドがあります。

115
synic
File dir = new File(Environment.getExternalStorageDirectory() + "/mydirectory");
if(dir.exists() && dir.isDirectory()) {
    // do something here
}
39
Mark B

次のコードは、Javaファイルに対しても機能します。

// Create file upload directory if it doesn't exist    
if (!sdcarddir.exists())
   sdcarddir.mkdir();
12
Artail3

ファイル/ディレクトリのチェックについて間違いを犯しました。実際、isFile()またはisDirectory()を呼び出すだけです。これが docs です

exists()またはisFile()を呼び出す場合、isDirectory()を呼び出す必要はありません。

1
user942821

一般に、この関数を使用して、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
Ingo

はい、たくさん試してみました、コードの下で私を助けます:)

 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();
                }
0
Agilanbu