2011-08-06 85 views
8

我想將一些數據保存在用戶的外部目錄(即SD卡)中,但似乎存在一個奇怪的問題。我使用的是Environment.getExternalStorageDirectory(),它返回「mnt/sdcard /」(這很好)。我想在此目錄中創建兩個文件夾,所以我做的:在外部存儲器上保存數據

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