在android中添加的文件夹通过USB不可见

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

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

(我试过getExternalStorageDirectory而不是getExternalStoragePublicDirectory和Pictures文件夹,而不是DCIM。)

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

我试过在新目录的父节点上广播ACTION_MEDIA_MOUNTED意图。 它没有工作。

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

我究竟做错了什么?

Solutions Collecting From Web of "在android中添加的文件夹通过USB不可见"

即使这个话题似乎是老的。 我面临同样的问题,重新启动Android设备或PC不是用户的实际解决scheme。 :)这个问题是通过使用MTP协议(我讨厌这个协议)。 您需要做的是启动可用文件的重新扫描,您可以使用MediaScannerConnection类执行此操作:

 // snippet taken from question File path = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM); path = new File(path, "SubDirName"); path.mkdirs(); // 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); 

这种方式有时候不适合我。 那么这里是完整的解决scheme

 // 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); 

唯一能为我工作的是:

 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

如果您将文件夹从PC直接添加到SD卡通过读卡器,它将不会显示在Windows资源pipe理器与手机连接时,解决scheme是复制或移动使用Android文件pipe理器程序相同的文件夹,然后将当连接到PC时列在SD卡索引中。

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

1)在Dir创build和/或文件保存之后,Chang从(MTP)模式到USB(SD卡)模式一会儿,等待SD卡挂载到PC,这样Dir&文件就会显示出来。

2)在最后一个文件仍然显示的地方再次回到(MTP)模式。

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

只需在PC上创build目录,然后将其复制到SD卡/手机存储。

您可以先将内容放入文件夹中,然后复制或仅复制文件夹。 只要从pc创build文件夹,任何内容都可以直接复制到内部/外部移动设备。 对于压缩的内容,他们不能直接解压缩和不幸的复制,你需要先解压缩它们。

祝你好运,祝你有美好的一天! 🙂