Java 缓存文件夹中的nomedia文件(Android)

Java 缓存文件夹中的nomedia文件(Android),java,android,multimedia,Java,Android,Multimedia,我正试图使用以下代码在缓存文件夹中创建一个.nomedia文件 private static final String NOMEDIA_FILE = ".nomedia"; path = new File(Environment.getExternalStorageDirectory().getAbsolutePath()+"/Android/data/"+cnt.getApplicationInfo().packageName+"/cache/"); path.mkdirs()

我正试图使用以下代码在缓存文件夹中创建一个.nomedia文件

private static final String NOMEDIA_FILE = ".nomedia";
    path = new File(Environment.getExternalStorageDirectory().getAbsolutePath()+"/Android/data/"+cnt.getApplicationInfo().packageName+"/cache/");
    path.mkdirs();

    file= new File(path,NOMEDIA_FILE);
    if (!file.exists()){
        try {
            file.createNewFile();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
file.createNewFile()
返回true,稍后返回
file.exists()
返回
true
,但该文件不会显示在文件夹中。如果我使用另一条路径,snipplet就会工作。介质扫描时是否自动忽略缓存文件夹?如果没有,如何在其中生成.nomedia文件


谢谢

文件确实存在,但隐藏在默认目录列表中;这就是前缀句点(.)的作用

通过启动adb shell并使用ls-a显示所有文件,从命令行进行确认。它看起来像这样:

C:\Users>adb shell
root@android:/ # cd /sdcard/learnpad
root@android:/sdcard/learnpad # ls -a
.nomedia
data.learnpad.co
profile.xml

文件确实存在,但隐藏在默认目录列表中;这就是前缀句点(.)的作用

通过启动adb shell并使用ls-a显示所有文件,从命令行进行确认。它看起来像这样:

C:\Users>adb shell
root@android:/ # cd /sdcard/learnpad
root@android:/sdcard/learnpad # ls -a
.nomedia
data.learnpad.co
profile.xml
该文件确实存在

文件资源管理器的设置决定您是否可以看到隐藏的文件夹

只需打开文件资源管理器,转到“设置”,然后打开“显示隐藏文件夹”

文件确实存在

文件资源管理器的设置决定您是否可以看到隐藏的文件夹


只需打开文件资源管理器,转到“设置”,然后打开“显示隐藏文件夹”

您的路径是
/sdcard/Android/data//cache/
。你确定吗?同样失败的是错误描述。您的路径是
/sdcard/Android/data//cache/
。你确定吗?同样失败的是错误描述。