Java Android删除SD卡中的文件

Java Android删除SD卡中的文件,java,android,file,Java,Android,File,我使用Environment.getExternalStorageDirectory()目录来保存文件。我打印出来的初始目录是/storage/emulated/0/myfilename.pdf此路径存储到数据库中,但当我尝试删除文件新文件(“/storage/emulated/0/myfilename.pdf”)。delete找不到文件或无法删除。我从新文件(“/storage/emulated/0/myfilename.pdf”)打印出目录,我看到路径是/File/[date]日期是2019

我使用
Environment.getExternalStorageDirectory()
目录来保存文件。我打印出来的初始目录是
/storage/emulated/0/myfilename.pdf
此路径存储到数据库中,但当我尝试删除文件
新文件(“/storage/emulated/0/myfilename.pdf”)。delete
找不到文件或无法删除。我从
新文件(“/storage/emulated/0/myfilename.pdf”)
打印出目录,我看到路径是/File/[date]日期是2019-12-2格式

我在AndroidManifest.xml中设置了如下权限:


我还在运行时将权限检查和请求权限设置为读写,如下所示:

if(ActivityCompat.checkSelfPermission(context,Manifest.permission.READ\u EXTERNAL\u STORAGE)!=PackageManager.permission\u已授予
||ActivityCompat.checkSelfPermission(上下文、清单、权限、写入外部存储)!=PackageManager.permission\u已授予){
ActivityCompat.requestPermissions((活动)上下文,
新字符串[]{Manifest.permission.READ_外部_存储,
Manifest.permission.READ\u EXTERNAL\u STORAGE},1);
返回false;
}否则{
返回true;
}
但我仍然无法删除该文件。请帮忙!多谢各位 删除功能如下所示

  public void deleteAFile(File file){
//print debug
System.out.println("deleteAFile:>>>>>>>>>>>"+file.getAbsolutePath());
        if(file.delete())
        {
            System.out.println("File deleted successfully");
        }
        else
        {
            System.out.println("Failed to delete the file: "+file.getName());
        }
    }

请注意,我使用了targetSdkVersion并编译了dkVersion=28。minSDKVersion=19内置渐变。

您需要在运行时明确请求
写入外部存储。在
requestPermissions()
调用中,您有两次
READ\u EXTERNAL\u STORAGE
。我不太清楚你说的文件路径和日期是什么意思。谢谢迈克,我改了写东西,但它仍然不起作用。关于路径/file/2019-12-2这是我在delete函数中打印出来的路径。在我从数据库抓取之前的路径不再是/storage/simulated/0,而是/file/2019-12-2……现在还不清楚到底发生了什么。请您的问题向我们显示文件创建和删除代码,以及数据库保存和检索。我只是使用删除功能编辑问题。在studio中,我选择了“查看”、“工具窗口”和“设备文件资源管理器”,我看到目录/storage/emulated被拒绝了。SD卡目录中有我的文件。我必须手动删除文件,然后才能保存新文件嗨,迈克,我想我发现了问题。我在几个地方管理文件路径。当我重新组织它们时,它指向了正确的位置。谢谢你,迈克