0

アクティビティの onCreate で mkdirs を使用してディレクトリ構造を作成する方法を使用しています。true が返され、すべて動作するはずですが、sdcard にディレクトリが作成されていません (または表示されていない可能性があります)。何が問題なのですか?

更新: 1. android.permission.WRITE_EXTERNAL_STORAGE を与えました 2. onCreate 以外の場所から呼び出された場合、つまりディレクトリ構造が作成された場合、メソッドは正常に動作します。

public static void createNoMediaFile() {
    Log.v("myreader",">>>>>>>>>>>>>>> Entered createNoMediaFile");
    File papermag=new File(DigitalEditionConstant.PAPERMAG_PATH);
    boolean isdircreated=papermag.mkdirs();
    Log.v("myreader",">>>>>>>>>>>>>>>>Directory setup: "+isdircreated);
    File noMediaFile=new File(DigitalEditionConstant.DIR_PATH+".nomedia");
    if(!noMediaFile.exists()){
        try {
            noMediaFile.createNewFile();
            Log.v("myreader",">>>>>>>>>>>>>>>>>>> Created File: "+noMediaFile.toString());
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

ディレクトリパスなどはすべてチェック済みで問題ありません。このメソッドは、私のプロジェクトのアクティビティの onCreate から呼び出されます

4

4 に答える 4

0

マニフェスト ファイルに WRITE_EXTERNAL_STORAGE のアクセス許可を追加しましたか? ここを参照

于 2011-08-25T07:12:31.203 に答える
0

ここに簡単なコードがあります

File wallpaperDirectory = new File(Environment.getExternalStorageDirectory().toString()+"/FolderName");
wallpaperDirectory.mkdirs();

あなたのメニフェストにこの許可を追加してください...

WRITE_EXTERNAL_STORAGE の許可

于 2011-08-25T07:16:38.130 に答える
0

ディレクトリの名前はピリオドで始まりますか? DDMS およびほとんどのファイル マネージャー アプリでは、これらのディレクトリは表示されませんが、存在します。

マニフェストのアクセス許可を追加しましたか:

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

デバイスを USB としてマウントすると、コードからの SD へのアクセスもブロックされます。

于 2011-08-25T07:17:02.920 に答える
0

「adb push」コマンドを使用して、ディレクトリを SD カードにコピーできるかどうかを確認します (SD カードに問題がないことを確認するため)。

于 2011-08-25T07:34:12.793 に答える