Android外部ストレージディレクトリにフォルダーを作成できません。
マニフェストに許可を追加しましたが、
<uses-permission Android:name="Android.permission.WRITE_EXTERNAL_STORAGE" />
ここに私のコードがあります:
String Path = Environment.getExternalStorageDirectory().getPath().toString()+ "/Shidhin/ShidhiImages";
System.out.println("Path : " +Path );
File FPath = new File(Path);
if (!FPath.exists()) {
if (!FPath.mkdir()) {
System.out.println("***Problem creating Image folder " +Path );
}
}
このようにします:
String folder_main = "NewFolder";
File f = new File(Environment.getExternalStorageDirectory(), folder_main);
if (!f.exists()) {
f.mkdirs();
}
その中に別のフォルダーを作成したい場合:
File f1 = new File(Environment.getExternalStorageDirectory() + "/" + folder_main, "product1");
if (!f1.exists()) {
f1.mkdirs();
}
mkdir
とmkdirs
の違いは、mkdir
は存在しない親ディレクトリを作成しないのに対し、mkdirs
は作成しないため、Shidhin
が作成しない場合存在する場合、mkdir
は失敗します。また、mkdir
およびmkdirs
は、ディレクトリが作成された場合にのみtrueを返します。ディレクトリが既に存在する場合、falseを返します
Android External Storage Directory。にフォルダーを作成できます。
マニフェストに許可を追加しましたが、
_<uses-permission Android:name="Android.permission.WRITE_EXTERNAL_STORAGE" />
_
ここに私のコードがあります:
_String folder_main = "Images";
File outerFolder = new File(Environment.getExternalStorageDirectory(), folder_main);
File inerDire = new File(outerFolder.getAbsoluteFile(), System.currentTimeMillis() + ".jpg");
if (!outerFolder.exists()) {
outerFolder.mkdirs();
}
if (!outerFolder.exists()) {
inerDire.createNewFile();
}
_
outerFolder.mkdirs();
//これによりフォルダが作成されます
inerDire.createNewFile();
//これによりファイルが作成されます(例:.jpg
ファイル)
次のように外部ストレージにフォルダーまたはディレクトリを作成できます。
String myfolder=Environment.getExternalStorageDirectory()+"/"+fname;
File f=new File(myfolder);
if(!f.exists())
if(!f.mkdir()){
Toast.makeText(this, myfolder+" can't be created.", Toast.LENGTH_SHORT).show();
}
else
Toast.makeText(this, myfolder+" can be created.", Toast.LENGTH_SHORT).show();
}
内部メモリにディレクトリまたはフォルダを作成する場合は、次のようにします。
File folder = getFilesDir();
File f= new File(folder, "doc_download");
f.mkdir();
ただし、外部ストレージへの書き込み許可を与えていることを確認してください。また、外部ドライブがない場合は、デフォルトで内部親ディレクトリを選択することを忘れないでください。私はそれが動作することを確認しています...コードをお楽しみください
追加してみてください
FPath.mkdirs(); ( http://developer.Android.com/reference/Java/io/File.html を参照)
そして、そのパスに必要に応じてファイルを保存するだけで、Android OSは必要なすべてのディレクトリを作成します。存在チェックを行う必要はなく、そのフラグを設定して保存します。参照: SDカードにディレクトリを自動的に作成する方法