2

ディレクトリを作成して、次のコードを使用しようとしています。

boolean success = true;
String rootDirectory = Environment.getExternalStorageDirectory().toString();
folder = new File(rootDirectory, "Directory");
if(!(folder.exists())) {
     success = folder.mkdirs();
} else {

}

if(success) {
   Toast.makeText(getActivity().getApplicationContext(), "DIR created", Toast.LENGTH_SHORT).show();     
} else {
     Toast.makeText(getActivity().getApplicationContext(), "DIR not created successfully", Toast.LENGTH_SHORT).show();
}

フォルダーが作成されている場合も検索しましたが、フォルダーはありません。

権限が付与されます:

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

また、実行時に許可を求めようとしましたが、アプリが許可を得ているように見えるため、問題になることはありません。

数か月前に別のアプリケーションを作成し、同一のコードと同一の Sdk バージョンを使用しましたが、それでもこのアプリケーションでは動作しません。「DIR が正常に作成されませんでした」というメッセージが表示され、その理由がわかりません。ディレクトリを作成できない理由を突き止めてください。

4

4 に答える 4

1

以下のコードを使用してください

File directory = new File(Environment.getExternalStorageDirectory() + java.io.File.separator +"Directory");
if (!directory.exists())
        Toast.makeText(getActivity(), 
          (directory.mkdirs() ? "Directory has been created" : "Directory not created"),
        Toast.LENGTH_SHORT).show(); 
else
     Toast.makeText(getActivity(), "Directory exists", Toast.LENGTH_SHORT).show();

Android API 23 (Marshmallow) 以降では、危険なアクセス許可を許可する必要があります。そうしないと、コードが期待どおりに機能しません。

于 2016-12-06T08:13:54.737 に答える
0
String path = Environment.getExternalStorageDirectory().toString() + "/" +"MyDir";
File dir = new File(path);
if(!dir.exists())
{
    dir.mkdirs()
}
于 2016-12-06T08:29:01.177 に答える