在android中创建文件时,必须在其上调用MediaScannerConnection.scanFile(),以便它显示在文件资源管理器中。
但是,当我尝试使用目录执行此操作时,它会被视为文件。
File dir = new File("folder/subfolder/folder2");
dir.mkdirs();
MediaScannerConnection.scanFile(_context, new String[]{dir.getAbsolutePath()}, null, null);
“folder2”应该是目录而不是文件。我该如何解决这个问题?
答案 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);
}
});
}