2017-01-31 8 views
0

私はこのandroid javaの/ storage/extSdCardパスにディレクトリを作成するには?

File f = new File("/storage/extSdCard"); 
    if (f.exists()) { 
     File[] files = f.listFiles(); 
     if (files != null) { 
      for (File filz : files) { 
       Toast.makeText(this, filz.getName() + "", Toast.LENGTH_SHORT).show(); 
      } 
     } 
    } 

を使用してSDカードのフォルダの内容を見ることができます。しかし、私は、ディレクトリ

File dir = new File("/storage/extSdCard/Android/Mayor"); 
    try { 
     if (!dir.exists()) { 
      if (dir.mkdirs()) { 
       Toast.makeText(this, "Folder Created", Toast.LENGTH_LONG).show(); 
      } else { 
       Toast.makeText(this, "Folder Not Created", Toast.LENGTH_LONG).show(); 
      } 
     } 
    } catch (Exception e) { 
     e.printStackTrace(); 
     Toast.makeText(this, "WTF", Toast.LENGTH_LONG).show(); 
    } 

そのdoesntが全く作成を作成しようとします。何か案が?

答えて

0

//が必要な場合は、オブジェクトは、ディレクトリ構造を構築する必要があり、親ディレクトリ

File myDirectory = new File("/sdcard/Wallpaper/"); 

//のためのFileオブジェクトを作成します。

myDirectory.mkdirs(); 

//出力ファイルのFileオブジェクトを作成

File outputFile = new File(myDirectory, filename); 

//ではなくString表現

FileOutputStream fos = new FileOutputStream(outputFile); 

ノートの、ファイルオブジェクトへのOutputStreamを付けます: Environment.getExternalStorageDirectory()を使用して "SD Card"ディレクトリを取得することをお勧めします。 SDカード以外のもの(内蔵フラッシュ、iPhoneなど)が付属しています。いずれにしても、実際にSDカードが取り外される可能性があることを確認する必要があることを覚えておく必要があります。

更新日: APIレベル4(1.6)以降も、許可をリクエストする必要があります。このような(マニフェスト内の)何かが動作するはずです:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
+0

はまだディレクトリを作成カントを参照してください:( ファイルf =新しいファイル( "/ SDカード/アニメ/"); f.mkdirsに(); OUTPUTFILE ファイル=新しいファイル(F、 "デモ"); 試す{ たFileOutputStreamのFOS =新しいのFileOutputStream(OUTPUTFILE); }キャッチ(FileNotFoundExceptionを電子){ e.printStackTrace(); }キャッチ(のIOException e)の{ e.printStackTrace(); } – Meowok

+0

どのOSバージョン、デバイスどうすればいいですか? –

+0

5.1.1、私はすでにその許可をしています。私は自分のコードを使ってみましたが、別のパスでは動作しますが、 e sdカード。私はEnvironment.getExternalStorageDirectory()を使用しましたが、デバイスストレージを指しています。 – Meowok

0

ファイルmnt =新しいファイル( "/ storage");

if(!mnt.exists()) mnt = new File( "/ mnt");

ファイル[] roots = mnt.listFiles();

外部sdcardを読み込むには、まず外部sdcardパスを使用できるようにした後にsdcardパスをマウントする必要があります。

+0

すでにマウントされていますが、私のSDカードの内容の名前を表示することもできますが、ディレクトリを作成することはできません – Meowok

+0

外部のsdcardのパスを直接取得するには、最初にextsdcardが利用可能かどうかをチェックし、sdcardの名前を選ぶ必要があるかどうかを確認する必要があります。 –

+0

ファイルf =新しいファイル( "/ storage/extSdCard"); IF(f.exists()){ ファイル[] =ファイルのf.listFiles()。 場合(ファイルfilz:ファイル)のための(ファイル= nullを!){{ Toast.makeText(これ、filz.getName()+ ""、Toast.LENGTH_SHORT).SHOW(); }} は} ..それは、そのパスの下のフォルダ名を表示し、それは私のSDカードからですが、私はちょうどカントは、ディレクトリを作成します。 – Meowok

0

リムーバブルSDカードにディレクトリを作成するには、DocumentFile.createDirectory(displayName)を使用する必要があります。 https://stackoverflow.com/a/35175460/1048340

+0

私はそれを試みましたが、フォルダを作成するために別のアクティビティを訪れる必要はありません。つまり、指定したフォルダが自動的に作成されます。 – Meowok

+0

リムーバブルストレージ上のファイルのアクセス権を要求する必要があります。ファイルが内部ストレージにある場合は、WRITE_EXTERNAL_STORAGE権限が必要です。一度許可されたアクセス権だけが必要です。これはAndroid 6.0+(モバイルでは5.0+かもしれないし、チェックできないかもしれません)では必須です。 –

関連する問題