java - 拍照后创建新文件夹

标签 java android

我已经访问了很多地方寻求解决方案,但我仍然无法找出我的错误。

我尝试过手动创建文件夹,图片可以保存。如果删除该文件夹,我将无法再保存图片。谁能指出我的错误在哪里?

非常感谢任何帮助!预先感谢您!

public void onClick( DialogInterface dialog, int item ) { //pick from camera
            if (item == 0) {
                Intent intent    = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);

                File mediaStorageDir = new File(
                        Environment
                                .getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES),
                        IMAGE_DIRECTORY_NAME);

                // Create the storage directory if it does not exist
                if (!mediaStorageDir.exists()) {                        
                    if (!mediaStorageDir.mkdirs()) {
                        Log.d(IMAGE_DIRECTORY_NAME, "Oops! Failed create "
                                + IMAGE_DIRECTORY_NAME + " directory");
                    }
                }

                mImageCaptureUri = Uri.fromFile(new File(mediaStorageDir.getPath() + File.separator
                        +"tmp_avatar_" + String.valueOf(System.currentTimeMillis()) + ".jpg"));


                intent.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, mImageCaptureUri);

                try {
                    intent.putExtra("return-data", true);

                    startActivityForResult(intent, PICK_FROM_CAMERA);
                } catch (ActivityNotFoundException e) {
                    e.printStackTrace();
                }
            } else { //pick from file
                Intent intent = new Intent();

                intent.setType("image/*");
                intent.setAction(Intent.ACTION_GET_CONTENT);

                startActivityForResult(Intent.createChooser(intent, "Complete action using"), PICK_FROM_FILE);
            }
        }

最佳答案

使用下面的代码。

File mediaStorageDir = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES),
        IMAGE_DIRECTORY_NAME);

if (!mediaStorageDir .exists()) {
        mediaStorageDir.mkdirs();
}   

Intent intent    = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);

您正在使用下面的代码

if (!mediaStorageDir.exists()) {                        
                    if (!mediaStorageDir.mkdirs()) {
                        Log.d(IMAGE_DIRECTORY_NAME, "Oops! Failed create "
                                + IMAGE_DIRECTORY_NAME + " directory");
                    }
                }

但是在这里,如果目录不存在,您就不会创建目录,您只是打印日志,这就是为什么会发生这样的情况。

关于java - 拍照后创建新文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21522017/

相关文章:

android - 尝试在空对象引用上调用虚拟方法 尝试在空对象引用上调用虚拟方法 android.widget.EditText.getText()

更新到 3.2 后的 Android Gradle 错误

android - 具有许多图像的自定义 ListView 获取内存不足异常

android - anko logging方法无法解决

java - 为什么要覆盖父接口(interface)中的现有方法?

java - 我可以使用多个发布者和单个接收者保留 OpenMQ 上的消息顺序吗?

android - 没有 SDK 实现的 OneSignal Android 通知

java - 如何使用 apache Camel dsl 删除 csv header

java - 我需要在我的 Java 项目中使用什么相对路径

java - 流 IllegalStateException