2011-08-06 10 views
8

ユーザーの外部ディレクトリ(つまりSDカード)にデータを保存したいが、奇妙な問題があるようだ。私はEnvironment.getExternalStorageDirectory()を使用していますが、 "mnt/sdcard /"(これは問題ありません)を返します。私はそう私はこのディレクトリ内に2つのフォルダを作成したい:外部ストレージにデータを保存する

File main = new File(getExternalStorageDirectory() + "/my_app/some_data"); 
if(!main.isDirectory()) 
    main.mkdirs(); 

今、私は、これはディレクトリ「MNT/SDカード/ MY_APP/SOME_DATA」になるだろうと思ったが、SDを見て、ファイルマネージャを使用した後このフォルダは "mnt/sdcard/my_app/mnt/sdcard/my_app/some_data"に作成されていることがわかります。これはかなり奇妙です。誰も私にこれを修正する方法を教えてもらえますか?

答えて

10

String packageName = this.getPackageName(); 
File myFilesDir = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + File.separator + "Android" + File.separator + "data" + File.separator + packageName + File.separator + "files"); 
myFilesDir.mkdirs(); 

それはexacly私はSDカード上の作業ディレクトリを作成するために使用するものだ...次のことを試してみて、あなたが得るものを参照してください。私にとってそれは...

/mnt/sdcard/Android/data/com.mycompany.myApp/files 

...ここで、 'com.mycompany.myApp'は私のアプリケーションの実際のパッケージ名です。

+0

少しの修正と少しのコードの追加の後、私はそれを働かせました、ありがとう! – Brian

+0

喜んで助けてください。楽しむ。 – Squonk

+0

こんにちは、あなたの答えをここに追加してください。 – Loshi

関連する問題