繁体   English   中英

如何访问 /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 卡上找到这个文件位置。 如何访问该位置?

无需第三方应用

我的 Android 6.0 允许我在不需要第三方应用程序的情况下浏览实习生内存。 我只是这样做*:

  1. “设置”
  2. “存储和 USB”
  3. “实习生”
  4. [让它加载一点...]
  5. [一直向下滚动]
  6. “浏览”

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

注意:至少在我的手机中, /storage/emulated/0不是对应于 SD 卡,而是对应于intern memory 这种方法不适用于我的外置卡,但我从未在其他手机上尝试过。

希望这可以帮助!

您也可以使用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>

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

插入您的设备并运行adb shell ,这将在您的设备上获得一个命令 shell。 您无权读取/storage/emulated/但因为您知道它在子目录 0 中,只需转到cd /storage/emulated/0就可以环顾四周并按方面进行交互。

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

尝试这个

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");
}

在模拟器中,点击设置>存储>其他>Android>数据>com.companyname.textapp>文件>下载来查看这个文件。 在这里, textapp 是您正在处理的应用程序的名称。

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

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

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

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

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

设置->应用点击右上角的 3 点菜单并选择显示系统查找媒体存储,选择它,选择存储,然后清除数据查找外部存储,选择它,选择存储,然后清除数据关闭手机,重新打开手机,等待索引器服务重建数据。

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

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

Android 建议您在路径名中调用Environment.getExternalStorageDirectory.getPath()而不是硬编码/sdcard/ 这将返回主共享/外部存储目录。 所以,如果存储被模拟,这将返回/storage/emulated/0 如果您使用文件浏览器浏览设备存储,则所述目录将为/mnt/sdcard (在运行 Android 6 的 Xperia Z2 上确认)。

试试从

ftp://ip_my_s5:2221/mnt/sdcard/Pictures/Screenshots

指向/storage/emulated/0

就我而言, /storage/emulated/0/ 对应于我设备的根路径 例如,当我使用手机的默认相机应用程序拍照时,图像会自动保存/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
);

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

如果您使用的是 Android 设备监视器和 android 模拟器:我已通过以下方式访问:Data/Media/0/ 在此处输入图片说明

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

QT

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

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

适用于 Xamarin Android

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

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

然后在命令 adb pull //这里的图像文件路径

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM