5

すべてが問題になっています。これが私のコードです:

    private void createDirectory(File currentDirectory) {
  File f = null;
  try {

   f = new File(currentDirectory.getCanonicalPath() + "/directory"
     + count);

   boolean success = f.mkdir();
   if (!success) {
    Toast.makeText(currentContext,
      f.getName() + " could not be created", 15).show();

   }
  } catch (IOException ioe) {
   Toast.makeText(currentContext,
     f.getName() + " could not be created", 15).show();
  }

  count++;
 }

私はAndroidで小さなファイルマネージャーを書いていますが、ディレクトリを作成する可能性を追加したいと思います。例外はなく、変数successは常にfalseを返します。誰かが私のコードの何が間違っているのか教えてもらえますか?

あなたのアドバイスのためのThx!!

[編集]

ところで、電話が開発モードにあるとき、アプリケーションはSDカードへの書き込みアクセス権を持っていますか?私は自分の携帯電話でプログラミングしています(AcerLiquid)

4

4 に答える 4

11

この権限を追加する必要があります。

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

ちなみに、SDカードディレクトリをどのように取得しているかはわかりません...しかし、次のようにする必要があります。

File sdDir = Environment.getExternalStorageDirectory();

SDカードは常に/sdcardであると考えるプログラマーもいますが、変更される可能性があるため、これは重要です。

于 2011-01-23T20:57:34.843 に答える
2

追加する必要があります

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

マニフェストファイルに移動して、Androidにアプリケーションの許可をユーザーに求めるように指示します。

于 2011-01-23T20:57:14.180 に答える
2

まず、ディレクトリと目的のサブディレクトリにFileをとるコンストラクタを使用してください。FileString

それを超えて、次の理由で許可されていないディレクトリを作成しようとしている可能性があります。

  • currentDirectory存在しない、または
  • currentDirectoryオンボードフラッシュストレージ上の書き込みが許可されていない場所を指している、または
  • currentDirectory外部ストレージ上の場所を指しているが、WRITE_EXTERNAL_STORAGE許可がない
于 2011-01-23T20:58:23.127 に答える
0

boolean success = f.mkdir();使用する代わりに

boolean success = f.mkdirs();

それは私の問題を解決しました(私はあなたと同じ参照コードを使用し、同じ問題を抱えていました)。

于 2016-10-12T09:54:52.943 に答える