空目录

时间:2015-09-17 18:56:18

标签: android

在android中创建文件时,必须在其上调用MediaScannerConnection.scanFile(),以便它显示在文件资源管理器中。

但是,当我尝试使用目录执行此操作时,它会被视为文件。

File dir = new File("folder/subfolder/folder2");
dir.mkdirs();
MediaScannerConnection.scanFile(_context, new String[]{dir.getAbsolutePath()}, null, null);

“folder2”应该是目录而不是文件。我该如何解决这个问题?

"folder2" should be a directory not a file

1 个答案:

答案 0 :(得分:0)

对我有用的解决方法:

  • 在该目录中创建一个文件
  • 扫描文件
  • 再次删除文件
  • 最后再次扫描文件(因为它仍然会以其他方式显示)
public static void scanEmptyFolder(final Context context, File targetFile){
    final File dummy = new File(targetFile, "init");
    try {
        dummy.createNewFile();
    } catch (IOException e) {
        e.printStackTrace();
    }
    MediaScannerConnection.scanFile(context, new String[]{dummy.getAbsolutePath()}, null, new MediaScannerConnection.OnScanCompletedListener() {
        @Override
        public void onScanCompleted(String s, Uri uri) {
            // delete file and scan again (because file should not be displayed)
            dummy.delete();
            MediaScannerConnection.scanFile(context, new String[]{dummy.getAbsolutePath()}, null, null);
        }
    });
}