如何访问 /storage/emulated/0/

How to access /storage/emulated/0/

我写了一段代码来录制音频并将其保存到下面的文件位置。

private String getFilename() {
    String filepath = Environment.getExternalStorageDirectory().getPath();
    File file = new File(filepath, AUDIO_RECORDER_FOLDER);
    if (!file.exists()) {
        file.mkdirs();
    }
    return (file.getAbsolutePath() + "/" + System.currentTimeMillis() + file_exts[currentFormat]);
}

在 Logcat 中,它给了我一个文件位置

/storage/emulated/0/AudioRecorder/1436854479696.mp4

我无法在我的 SD 卡上找到此文件位置。如何访问该位置?

试试这个

private String getFilename() {
    String filepath = Environment.getExternalStorageDirectory().getPath();
    File file = new File(filepath + "/AudioRecorder" );
    if (!file.exists()) {
        file.mkdirs();
    }
    return (file.getAbsolutePath() + "/" + System.currentTimeMillis() + ".mp4");
}

正如 Hiren 所说,您需要一个文件资源管理器才能查看您的目录。如果你是 root 用户,我强烈建议你使用 root explorer,否则 ES File Explorer 是一个不错的选择。

无需第三方应用

我的 Android 6.0 允许我浏览实习记忆而不需要第三方应用程序。我只是这样做*:

  1. "Settings"
  2. "Storage and USB"
  3. "Intern"
  4. [稍微加载一下...]
  5. [一直向下滚动]
  6. "Browse"

* 单词可能与标准英文版本不对应,因为我只是从葡萄牙语随意翻译它们。

注意:至少在我的phone中,/storage/emulated/0不对应SD卡,而是intern memory。此方法不适用于我的外接卡,但我从未在另一张 phone.

上尝试过

希望对您有所帮助!

如果您正在使用 Android 设备监视器和 android 模拟器:我已经通过以下方式访问: Data/Media/0/

Xamarin Android

使用命令 //获取文件目录

Image image =new Image() { Source = file.Path };

然后在指挥 adb pull //这里是图片文件路径

插入您的设备,然后 运行 adb shell 将在您的设备上为您提供命令 shell。您没有读取 /storage/emulated/ 的权限,但因为您知道它位于子目录 0 中,所以只需转到 cd /storage/emulated/0,您就可以环顾四周并按方面进行交互。

注意:您也可以无线使用adb

在模拟器中,要查看此文件,请单击“设置”>“存储”>“其他”>Android>“数据”>com.companyname.textapp>“文件”>“下载”。 此处,textapp 是您正在使用的应用程序的名称。

开始尝试
ftp://ip_my_s5:2221/mnt/sdcard/Pictures/Screenshots

指向/storage/emulated/0

要从 /storage/emulated/0/ 恢复您的图片,只需打开 100Andro 文件..您将在其中看到您的图片,尽管您可能无法在您的电脑资源管理器中访问它们。一张一张打开每张图片,继续设置(三个点..)并保存图片。它将显示在 android 文件 'Pictures' 中,您也可以从那里使用资源管理器复制它们。没有 'save all' 功能,但是必须一项一项完成,但它有效。

QT

在这里,它位于 /mnt/shell/emulated/0

在我的例子中,/storage/emulated/0/ 对应于我设备的根路径。例如,当我使用 phone 的默认相机应用程序拍照时,图像会自动保存 /store/emulated/0/DCIM/Camera/mypicname.jpeg

例如,假设您要将图片存放在/Pictures目录下,即根目录下的Pictures目录下。所以你使用下面的代码。

File storageDir = Environment.getExternalStoragePublicDirectory( Environment.DIRECTORY_PICTURES );

如果您想将图像保存在 DCIM 或下载目录中,请为上面显示的 Environment.getExternalStoragePublicDirectory() 方法提供以下参数。

Environment.DIRECTORY_DCIM
Environment.DIRECTORY_Downloads

然后指定您的图像名称:

String imageFileName = "JPEG_" + timeStamp + "_";

然后如下所示创建文件对象。您将后缀指定为第二个参数。

File image = File.createTempFile(
            imageFileName,  // prefix
            ".jpg",         // suffix
            storageDir      // directory
);

https://productforums.google.com/forum/#!msg/nexus/WIcHUNQfRLU/ALpViG86AwAJ

昂贵的玩具先生说: 很惊讶这个问题仍然出现,因为它早在 Honeycomb 就开始发生了。

因此,/storage/emulated/0/DCIM/Camera 与普通 DCIM/Camera 文件夹是同一个文件夹。它只是一个符号链接。所以这些文件实际上位于正确的位置,您只是有一个将错误数据放入 MediaStore 数据库的应用程序。

从您的 PC 访问文件时,您实际上是在为文件枚举 MediaStorage 数据库。它不拉一个传统的目录列表。因此,您所看到的是基于该数据库中的内容和数据库中的路径条目。数据库中指向模拟目录的文件没有显示,因为它们被认为是重复的,因为它与正常的物理目录相同 DCIM/Camera。发生的事情是一些编写不当的第三方应用程序使用 /storage/emulated/0/DCIM/Camera 路径而不是 DCIM/Camera 的正确根路径将条目插入到数据库中。这意味着当您连接到您的 PC 时,MTP 服务看不到它们。

通常解决问题的最简单方法是清除 MediaStore 数据库以从 MediaStore 数据库中取出错误的条目,让系统重新索引文件并使用正确的路径放入数据库。

设置->应用 点击右上角的三点菜单和 select 显示系统 找到媒体存储,Select 它,Select 存储,然后清除数据 找到外部存储,Select它,Select存储,然后清除数据 关闭 phone,重新打开 phone,等待索引器服务重建数据。

完成后,文件应该会显示正确的目录树,并且可以从 PC 上看到。根据 phone 上的文件数量,重建媒体数据库可能需要 10-20 分钟,因为服务遍历 phone 目录、获取元数据、创建缩略图等。

Android 建议您在路径名中调用 Environment.getExternalStorageDirectory.getPath() 而不是硬编码 /sdcard/。这 return 是主要的 shared/external 存储目录。因此,如果模拟存储,这将 return /storage/emulated/0。如果您使用文件资源管理器浏览设备存储,则该目录将为 /mnt/sdcard(已在 Xperia Z2 运行 Android 6 上确认)。

您还可以使用 Android Debug Bridge (adb) 将文件从 Android 设备复制到您 PC 上的文件夹:

adb pull /storage/emulated/0/AudioRecorder/1436854479696.mp4 <folder_on_your_PC_e.g. c:/temp>

并且您可以从设备整个 AudioRecorder 文件夹复制:

adb pull /storage/emulated/0/AudioRecorder <folder_on_your_PC_e.g. c:/temp>

使用设备文件资源管理器查看设备上的文件

https://developer.android.com/studio/debug/device-file-explorer

如果您在 Mac 上的 Android Studio 中使用模拟器,您可以前往 View -> Tool Windows -> Device File Explorer。这里可以使用finder-like结构。