2011-06-10 6 views
0

私のアプリケーションの1つで別のアクティビティとして維持しているSDカードにディレクトリを作成したいとします。私はアプリケーションのonCreate()に次のコードを書いた。私は独立したアプリケーションとして実装しようとすると、このコードは正常に動作しますが、ディレクトリを作成していません。 この問題の解決策を提案してください。アプリケーション内のSdカードにディレクトリを作成するには

public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     try{ 
      String dirName = "/sdcard/TEST"; 
      File newFile = new File(dirName); 
      newFile.mkdirs(); 
      Log.d("CaptureTest.java","Directory created"); 
      if(newFile.exists()){ 
       Log.d("capturetest.java","directory exists"); 
       if(newFile.isDirectory()){ 
        Log.d("capturetest.java","isDirectory = true"); 
       } 
       else Log.d("capturetest.java","isDirectory = false"); 
      } else 
       { 
       Log.d("capturetest.java","directory doesn't exist"); 
      } 


     } catch(Exception e){ 


      Log.d("capturetest.java","Exception creating folder " + e); 


     } 


........................................ 
.......................................... 

} 

答えて

4

/sdcardの代わりに/mnt/sdcardにSDカードがマウントされている可能性があります。次のコード

File myDirectory = new File(Environment.getExternalStorageDirectory(), "my directory"); 
if(!myDirectory.exists()) { 
    myDirectory.mkdirs(); 
} 
+0

それは異なります。いくつかのデバイスでは '/ sdcard'、他のデバイスでは'/mnt/sdcard'です。しかし、あなたの提案されたテクニックは、すべての場合に機能します。 – laalto

+0

ああ、私は '/ sdcard'自身でそれを見たことがない。先端のためのThanx。 –

+0

sugesstionに感謝します。私は ファイルmydirectoryなどが=新しいファイル(Environment.getExternalStorageDirectory()、「私のディレクトリ)で試してみました。 しかし、アプリケーションは、まだSDカード上のディレクトリを作成することができません コードの同じPICEは次のように実装されているときには。 – komal

0

これを引き起こして多くのことがあるかもしれません:外部記憶装置がそれに書き込みをしようとする前に利用可能と書き込み可能であることを

  1. チェック。
  2. String dirName = "/ sdcard/TEST"を使用しないでください。代わりにEnvironment.getExternalStorageDirectory()またはContext.getExternalFilesDir()を使用してください。

This pageには、SDカードに正しくアクセスするためのヒントがあります。

+0

に私はASTROを使用してSDカードに(手動で)ディレクトリを作成することができていますように しかし、外部ストレージディレクトリを取得するための最も安全な技術があります。つまり、外部ストレージが利用可能で書き込み可能であることを意味しますか? – komal

関連する問題