2013-08-16 88 views
0

我正在製作一個錄音機應用程序。該應用程序應該記錄文件並將其保存在外部存儲目錄中。這是我正在試圖做到這一點:應用程序不會創建一個新的目錄

聲明幾個全局變量:在的onCreate

String externalStoragePath = Environment.getExternalStorageDirectory().getAbsolutePath(); 
String outputPath = externalStoragePath + "/Android/data/com.whizzappseasyvoicenotepad/no_name.mp3"; //output path for mp3 files 
File appDirectory = new File(externalStoragePath + "/Android/data/com.whizzappseasyvoicenotepad"); //this is the directory I want to create when app is started for the first time 

幾個日誌檢查externalStorage是好的和工作,因爲它應該是:

Log.i("TAG", "External storage directory: " + externalStoragePath); 
Log.i("TAG", "External storage state: " + Environment.getExternalStorageState()); 

日誌說外部存儲是完全正常的(存儲/模擬/ 0),並且狀態爲掛載。

然後我嘗試創建目錄,如果不存在,就:

if (!appDirectory.exists()) 
    { 
     try { 
      appDirectory.createNewFile(); 
     } catch (IOException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
    } 

我知道,因爲它應該,如果該設備是由USB線連接到PC外部存儲設備不工作,所以我從USB中移除設備並運行該應用程序,但該文件夾未按原樣創建。基本沒有任何反應

+0

使用appDirectory.mkdir()而不是appDirectory.createNewFile()試着讓我知道。 – TheFlash

回答

1

您需要使用的mkdir()代替createNewFile():

appDirectory.mkdir(); 

還需要設置權限在AndroidManifest.xml中:

android.permission.WRITE_EXTERNAL_STORAGE 
0

在您的Android Manifest中包含android.permission.WRITE_EXTERNAL_STORAGE權限。

0

下面是一個使用示例代碼,我創建目錄:

File dir = new File(Environment.getExternalStorageDirectory() + "/myFoler"); 
     if(!(dir.exists() && dir.isDirectory())){ 
      dir.mkdir(); 
     } 

並且不要忘記中的WRITE_EXTERNAL_STORAGE權限文件

相關問題