我正在制作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
谁能帮助那什么是错在这是为什么目录没有被创建的代码。
你必须写在清单文件中声明外部存储权限? – Bhargav
是的,我有权限。我在清单文件中声明.. – Heisenberg
代码现在工作正常。刚刚实现了getExternalFilesDir()而不是getExternalStorageDirectory()。 – Heisenberg