簡體   English   中英

空目錄上的Android scanFile()

[英]Android scanFile() on empty directory

在android中創建文件時,必須在其上調用MediaScannerConnection.scanFile(),以便在文件瀏覽器中顯示該文件。

但是,當我嘗試使用目錄執行此操作時,它將被視為文件。

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

“ folder2”應該是目錄而不是文件。 我怎樣才能解決這個問題?

“ folder2”應該是目錄而不是文件

一種對我有用的解決方法:

  • 在該目錄中創建一個文件
  • 掃描文件
  • 再次刪除文件
  • 最后再次掃描文件(因為否則它仍會顯示)

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM