在android中的SD卡上制作文件夹

时间:2016-02-29 12:02:33

标签: android java-io

我正在制作Android应用程序,我需要在存储磁盘卡上创建文件夹。 我的主要活动课程: 我添加了三个按钮,每次单击都是写一个文件夹。 我的程序正在执行,但Toast Message是"目录未创建。" 我检查了我的存储磁盘卡,在那里,我还在清单中添加了用户权限。

@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

任何人都可以帮助解决代码中的错误,这就是Directory没有创建的原因。

3 个答案:

答案 0 :(得分:0)

我认为您无法在这些porticular目录中创建文件夹。请尝试其他目录。

答案 1 :(得分:0)

试试这个

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

答案 2 :(得分:0)

假设我想在SD卡上创建示例文件夹

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