我想在Environment.DIRECTORY_PICTURES
目录下创建一个非私有的子目录。我使用下面显示的代码但无济于事。目录已创建但仍保持私有。我不知道我哪里错了。
File file = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES), "MyImages");
file.mkdirs();
File f = new File(file,"Image1");
答案 0 :(得分:1)
首先,您尚未创建文件,至少在上面显示的代码中。您已经创建了一个Java File
对象,并且创建了一个目录,但是没有为Image1
创建文件,因此您的目录为空。我知道没有办法强制你的空目录被任何东西选中,但是如果你使用 adb shell
或DDMS检查你的设备,你会看到它。
当您最终将文件写入此目录时,请确保在getFD().sync()
该流之前致电FileOutputStream
上的close()
。然后,使用MediaScannerConnection
及其静态scanFile()
方法让新创建的文件由MediaStore
编入索引。在您执行此操作之前,新创建的文件将无法通过MTP或许多第三方应用程序显示。