【问题标题】:How to access files saved programatically in Environment.DIRECTORY_DCIM in Windows Operating system?如何在 Windows 操作系统中访问以编程方式保存在 Environment.DIRECTORY DCIM 中的文件?
【发布时间】:2019-01-26 08:31:56
【问题描述】:

我的问题与this one 不同,因为我不使用 SD 卡。

我使用 Camera API 拍照,这是我保存文件的方法:

private PictureCallback mPicture = new PictureCallback() {

    @Override
    public void onPictureTaken(byte[] data, Camera camera) {

        File pictureFile = getOutputMediaFile(MEDIA_TYPE_IMAGE);
        if (pictureFile == null){
            Log.d(TAG, "Error creating media file, check storage permissions");
            return;
        }

        try {
            FileOutputStream fos = new FileOutputStream(pictureFile);
            fos.write(data);
            fos.close();
        } catch (FileNotFoundException e) {
            Log.d(TAG, "File not found: " + e.getMessage());
        } catch (IOException e) {
            Log.d(TAG, "Error accessing file: " + e.getMessage());
        }
    }
};

这很好用。当我在手机本机相机应用程序甚至手机文档中浏览时,我会看到文件(即图片)。

**问题:**当手机使用 USB 连接到我的笔记本电脑 (Windows 10) 时(此处使用的任何协议,即 MTP、PTP、USB),当我浏览到 DCIM 文件夹时,我看不到文件.我虽然隐藏了,但我试图取消隐藏它,但它仍然不显示。

你能帮我找到这个文件,以便我可以将它复制到我的笔记本电脑上进行测试吗?

【问题讨论】:

  • Android Studio 是否检测到您的手机?
  • @113408 是的
  • 你介意显示pictureFile.getAbsolutePath()的结果吗
  • @113408 这里是:/storage/sdcard0/DCIM/Camera/Picture_20192826102834.jpg

标签: android


【解决方案1】:

您可以使用Android Studio 的文件资源管理器窗格来访问手机/模拟器中的文件

从您的评论看来,您将图片存储在 SDCard 上,因此您可以从以下位置访问它们:

【讨论】:

  • 尝试像这样使用 adb:adb pull /storage/sdcard0/DCIM/Camera/Picture_20192826102834.jpg C:\Users\YOUR_USER\Desktop
  • 太棒了。 adb pull 完成了这项工作。谢谢。我可以再解释一下为什么我们需要这样做来获取文件吗?
  • @tomjohnes 通常,您可以通过将手机正常插入 USB 并转到上述目录来访问 DCIM 文件夹。 IMO 最好的实用工具是 AS 文件资源管理器,但由于它一直为您加载(不知道为什么),我们只是切换到更激进的方式,即 adb pull
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-29
  • 2019-12-10
  • 1970-01-01
  • 2023-03-28
  • 2016-10-08
  • 1970-01-01
相关资源
最近更新 更多