2 sachinks SachinKS 于 2013.06.09 11:39 提问

为什么我的文件保存在这里?

我希望照片能保存在这里:

Android/data/com.androidproject/files/Camera/photo.png

但是根据 Log.v 声明,它保存在这里:

file:///storage/emulated/0/Android/data/com.androidproject/files/Camera/photo.png

代码:

private class ClickListener implements View.OnClickListener {
        @Override
        public void onClick(View v) {
            Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);

            File dir = new File(getActivity().getExternalFilesDir("Camera"),
                    "photo.png");               
            Uri outputFileUri = Uri.fromFile(dir);
            Log.v("FILE", "" + outputFileUri);
            intent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri);
            startActivityForResult(intent, CALL_BACK);
        }
    }

为什么不能保存在我期望的位置?怎么改?

2个回答

Kakalapa1986
Kakalapa1986   2013.06.09 14:06
已采纳

getFilesDir()代替`getExternalFilesDir()来保存:

File f = new File(getFilesDir() + File.separator + "Camera" + File.separator + "photo.png");
f.mkdirs();

这样能调整新文件,要确保保存路径存在。

Jave_
Jave_   2013.06.09 11:57

你有权限在内部存储根下创建Android文件夹吗?

getExternalFilesDir就是获取外部存储Files
默认为Android/data/报名/files

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!