Android文件路径

时间:2016-07-21 11:33:03

标签: android performance

我想添加具有特定路径的文件,以便在图像中查看..工作正常

File imgFile = new File("/storage/emulated/0/DSC_0008.JPG");

    if (imgFile.exists()) {

        Bitmap myBitmap = BitmapFactory.decodeFile(imgFile.getAbsolutePath());

        ImageView myImage = (ImageView) findViewById(R.id.imageView);

        myImage.setImageBitmap(myBitmap);

BUT 这不是我找到我的照片的地方..如果我尝试手动打开而不是从工作室打开

任何想法如何工作......以及我如何知道我应该使用的路径来获取我的android上的任何照片

3 个答案:

答案 0 :(得分:1)

" / storage / emulated / 0 /"文件夹并不存在。

它可能被称为"符号链接",或者,更简单地说,是对真实数据存储位置的引用。您需要在设备上找到存储它的实际物理位置。

由于它位于/storage/emulated/0/DSC_0008.JPG,因此它可能位于/ Internal Storage / DSC_0008.JPG /中。请注意,此文件夹可能只包含" DSC_0008.JPG",它们是真实文件的非常小的版本。

如果您的SD卡无法恢复,您的真实文件可能会永远消失。

正如Hiren所说,您需要一个文件浏览器来查看您的目录。如果您已经扎根,我强烈建议使用root explorer,否则ES File Explorer是个不错的选择。

您可以使用文件选择器获取图像路径

    private void chooserImage(){
     Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
     intent.setType("image/*");
     startActivityForResult(intent, 1888);
    }

然后覆盖名为onActivityResult

的方法
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if(resultCode ==  getActivity().RESULT_OK && requestCode==1888){
    Uri imageUri = data.getData();
    String path = imageUri.getPath().toString();
    File imgFile = new File(new URI(path));
    //Then Here user your code

   if (imgFile.exists()) {

    Bitmap myBitmap = BitmapFactory.decodeFile(imgFile.getAbsolutePath());

    ImageView myImage = (ImageView) findViewById(R.id.imageView);

    myImage.setImageBitmap(myBitmap);
   }

  }
  }

只需调用任何事件chooserImage();即可选择文件并显示为ImageView

您还需要一个步骤:设置读取SD卡的权限。在AndroidManifest.xml中添加它

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

答案 1 :(得分:0)

根据文件名DSC_0008.JPG判断,我假设它是用相机应用程序制作的。如果是这样的话,您的文件应该在/ sdcard / DCIM / Camera /

答案 2 :(得分:0)

试试这个

文件imgFile = getOutputFile(“myfileName”,“imagesSubFolder”);

public static File getOutputFile(String fileName, String subFolderName) {

    File mediaStorageDir;

    if (subFolderName == null) {
        mediaStorageDir = new File(Environment.getExternalStorageDirectory().getAbsolutePath(), Path.PHOTO_DIRECTORY);
    } else {
        mediaStorageDir = new File(Environment.getExternalStorageDirectory().getAbsolutePath(), Path.PHOTO_DIRECTORY + File.separator + subFolderName);
    }

    if (!mediaStorageDir.exists()) {
        if (!mediaStorageDir.mkdirs()) {
            return null;
        }
    } else {

        try {

            if (subFolderName != null) {
                File noMediaFile = new File(mediaStorageDir, ".nomedia");
                noMediaFile.createNewFile();
            }

        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    return new File(mediaStorageDir.getPath() + File.separator + fileName);
}
祝你好运