Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/227.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何删除API级别的文件或目录>;=23?_Java_Android_File - Fatal编程技术网

Java 如何删除API级别的文件或目录>;=23?

Java 如何删除API级别的文件或目录>;=23?,java,android,file,Java,Android,File,我有一个android应用程序可以删除特定的文件或目录。这个应用程序可以在API小于23的android上运行,但不能在API 23及以上的android上运行。 我为外部SD卡上的读写数据写了清单权限和运行时权限。但不起作用。我用dexter library写了运行时权限,但再次不起作用。 最后,我删除了部分代码,这些代码删除了外部sd卡上的文件和目录,只想删除内部sd卡上的目录,但仍然有相同的结果(同样API>23不起作用) public-double-deleteFileOrDirecto

我有一个android应用程序可以删除特定的文件或目录。这个应用程序可以在API小于23的android上运行,但不能在API 23及以上的android上运行。 我为外部SD卡上的读写数据写了清单权限和运行时权限。但不起作用。我用dexter library写了运行时权限,但再次不起作用。 最后,我删除了部分代码,这些代码删除了外部sd卡上的文件和目录,只想删除内部sd卡上的目录,但仍然有相同的结果(同样API>23不起作用)

public-double-deleteFileOrDirectory(字符串fileOrDirectory){
File FOD=新文件(fileOrDirectory);
if(FOD.exists()&&FOD.isFile()&&FOD.canWrite()){
FOD.delete();
}else if(FOD.exists()&&FOD.isDirectory()&&FOD.canRead()){
字符串fileList[]=FOD.list();
if(fileList!=null&&fileList.length==0){
FOD.delete();
//返回0;
}else if(fileList!=null&&fileList.length>0){
for(int i=0;i

我想删除所有android设备的文件-至少我想以任何特定权限从内存中删除目录。

API23+将外部SD卡视为“半永久性”设备,因此不会授予应用程序专用目录之外的任何写访问权。

是否有其他删除方法SD卡上的文件?
public double deleteFileOrDirectory(String fileOrDirectory) {
    File FOD = new File(fileOrDirectory);
    if (FOD.exists() && FOD.isFile() && FOD.canWrite()) {
        FOD.delete();
    } else if (FOD.exists() && FOD.isDirectory() && FOD.canRead()) {
        String fileList[] = FOD.list();
        if (fileList != null && fileList.length == 0) {
            FOD.delete();
            // return 0;
        } else if (fileList != null && fileList.length > 0) {
            for (int i = 0; i < fileList.length; i++) {
                File temp_f = new File(FOD.getAbsolutePath() + "/" + fileList[i]);
                if (temp_f.isDirectory())
                    deleteFileOrDirectory(temp_f.getAbsolutePath());
                else if (temp_f.isFile())
                    temp_f.delete();
            }

        }
        if (FOD.exists())
            if (FOD.delete()) {
                //return 0;
            }
    }
    // return -1;
    double[] v = volumCalcultor();
    return v[2];

}