Android上添加的文件夹无法通过USB看到

问题描述 投票:34回答:6

我正在尝试将图片保存在Android上的子文件夹中。这是我的一些代码:

File path = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM);
path = new File(path, "SubDirName");
path.mkdirs();

((我尝试用getExternalStorageDirectory代替getExternalStoragePublicDirectory,并且用Pictures文件夹代替DCIM。)

我添加的任何子文件夹,包括其内容,在通过USB连接设备时都不会显示在Windows资源管理器中。不过,它的确显示在Android文件管理器中。

我已经尝试在新目录的父目录上广播ACTION_MEDIA_MOUNTED意图。它没有用。

如果我在Windows中添加文件,该文件将显示在Android上。如果我通过文件管理器在Android上添加文件,则该文件会显示在Windows中。如果我以编程方式添加文件,则该文件会显示在Android文件管理器中,但不会显示在Windows资源管理器中。而且,我需要从Windows获得它,并且我不希望最终用户必须手动创建文件夹。

我在做什么错?

android filesystems
6个回答
59
投票

我也遇到了同样的问题,对于用户来说,重新启动Android设备或PC并不是一个切实可行的解决方案。 :)

此问题是通过使用MTP协议(我讨厌此协议)引起的。你必须启动对可用文件的重新扫描,您可以使用MediaScannerConnection类进行此操作:

// Snippet taken from question
File path = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM);
path = new File(path, "SubDirName");
path.mkdirs();

// Initiate a media scan and put the new things into the path array to
// make the scanner aware of the location and the files you want to see
MediaScannerConnection.scanFile(this, new String[] {path.toString()}, null, null);

5
投票

这种方式有时对我不起作用。好吧,这是一个完整的解决方案。

// Snippet taken from question
File path = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM);
path = new File(path, "SubDirName");
path.mkdirs();

// Fix
path.setExecutable(true);
path.setReadable(true);
path.setWritable(true);

// Initiate media scan and put the new things into the path array to
// make the scanner aware of the location and the files you want to see
MediaScannerConnection.scanFile(this, new String[] {path.toString()}, null, null);

3
投票

唯一对我有用的是:

Intent mediaScannerIntent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
Uri fileContentUri = Uri.fromFile(path);
mediaScannerIntent.setData(fileContentUri);
this.sendBroadcast(mediaScannerIntent);

贷给https://stackoverflow.com/a/12821924/1964666


0
投票

如果将文件夹从PC直接通过读卡器从PC添加到SD卡中,则在与手机连接时不会在Windows资源管理器中显示。

解决方案是使用Android文件管理器程序复制或移动相同的文件夹,然后在连接到PC时,它将在SD卡索引中列出。


-1
投票

我已经通过切换电话设置解决了这个问题:

1)创建Dir和/或保存文件后,暂时从(MTP)模式更改为USB(SD卡)模式,等待将sd卡安装到pc,这样将显示Dir和文件。

2)再次返回(MTP)模式,在该模式下仍显示最后一个文件。

3)重新保存文件时,您必须再次更改为USB才能看到它。


-2
投票

只需先在PC上创建目录,然后将其复制到SD卡/电话存储中。

您可以先将内容放入文件夹中,然后再复制,也可以仅复制文件夹中的内容。只要是从pc创建文件夹,任何内容都可以直接复制到内部/外部移动设备。对于压缩的内容,很遗憾,它们无法直接解压缩并复制,您需要先将其解压缩。

祝你好运,祝你有美好的一天! :)

© www.soinside.com 2019 - 2024. All rights reserved.