2016-02-29 137 views
0

我正在製作Android應用程序,因爲我需要在存儲磁盤卡上創建文件夾。 我的主要活動分類: 我已經添加了三個按鈕,每次點擊都是爲了寫一個文件夾。 我的程序正在執行,但Toast消息是「目錄未創建」。 我檢查了我的存儲磁盤卡,並在那裏,我也在清單中添加了用戶權限。在SD卡上製作文件夾android

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    final boolean isSDWritable = SDcard.isExternalStorageWritable(); 
    buttonDownlaod = (Button) findViewById(R.id.activity_main_directoryDownload); 
    buttonPictures = (Button) findViewById(R.id.activity_main_directoryPictures); 
    buttonMovies = (Button) findViewById(R.id.activity_main_directoryMovies); 
    buttonDownlaod.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      if (isSDWritable) { 
       getStorageDir(Environment.DIRECTORY_DOWNLOADS, "MyDownlaods"); 
      } 
     } 
    }); 
    buttonMovies.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      if (isSDWritable) { 
       getStorageDir(Environment.DIRECTORY_MOVIES, "MyMovies"); 
      } 
     } 
    }); 
    buttonPictures.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      if (isSDWritable) { 
       getStorageDir(Environment.DIRECTORY_PICTURES, "MyPictures"); 
      } 
     } 
    }); 
} 

public File getStorageDir(String inBuiltDir, String folderName) { 
    String inBuiltdir = Environment.getExternalStorageDirectory().getAbsolutePath(); 
    File file = new File(inBuiltDir, folderName); 
    if (!file.mkdirs()) { 
     Toast.makeText(this, "Directory is not created", Toast.LENGTH_SHORT).show(); 
    } else { 
     Toast.makeText(this, "Folder Name" + folderName + "Created", Toast.LENGTH_SHORT).show(); 
    } 
    return file; 
} 

} // Update code formatting 

誰能幫助那什麼是錯在這是爲什麼目錄沒有被創建的代碼。

+0

你必須寫在清單文件中聲明外部存儲權限? – Bhargav

+0

是的,我有權限。我在清單文件中聲明.. – Heisenberg

+0

代碼現在工作正常。剛剛實現了getExternalFilesDir()而不是getExternalStorageDirectory()。 – Heisenberg

回答

0

我認爲你不能在這些porticular目錄中創建文件夾。嘗試其他目錄。

0

試試這個

File file = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/"+folderName+"/"); 
file.mkdirs(); 
+0

取代你的代碼,沒有變化。消息仍然是「未創建目錄」 – Heisenberg

0

假設我要到SD卡上創建示例文件夾

File recordingDirectory = new File("/sdcard/sample/"); 
if (!recordingDirectory.exists()) { 
    recordingDirectory.mkdirs(); 
} 
相關問題