【发布时间】:2012-11-10 13:28:52
【问题描述】:
我正在尝试将图片保存在 Android 上的子文件夹中。这是我的一些代码:
File path = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM);
path = new File(path, "SubDirName");
path.mkdirs();
(我试过用getExternalStorageDirectory 代替getExternalStoragePublicDirectory,用图片文件夹代替DCIM。)
当设备通过 USB 连接时,我添加的任何子文件夹(包括其内容)都不会显示在 Windows 资源管理器中。不过,它确实会显示在 Android 文件管理器中。
我已尝试在新目录的父级上广播 ACTION_MEDIA_MOUNTED 意图。没用。
如果我在 Windows 中添加一个文件,它会显示在 Android 上。如果我通过文件管理器在 Android 上添加一个文件,它会显示在 Windows 中。如果我以编程方式添加文件,它会显示在 Android 文件管理器中,但不会显示在 Windows 资源管理器中。我需要从 Windows 获取它,我不希望最终用户必须手动创建文件夹。
我做错了什么?
【问题讨论】:
-
我在三星设备中也看到过这种行为。你的代码没有问题。这是三星 USB 驱动程序的行为。再次拔出并插入USB,目录将开始显示。
-
感谢您的建议,PC。我也这么想过。不过,这是华硕变压器。我试过拔掉再重新插入,但没有用。
-
如果文件夹在 Android 文件管理器中可见,那么根据我的说法是它的 USB 问题而不是您的代码问题。
-
您必须使用 getExternalStoragePublicDirectory 否则它将无法在设备外使用。
-
问题出在 mtp 协议上...只需重启手机即可显示
标签: android filesystems