file.createNewFile() 出现 No such file or directory

今天出现了一个No such file or directory问题,debug跟踪发现是file.createNewFile() 出现的,检查一下几项:

1.AndroidManifest中是否添加了

 

2.若手机是7.0以上,检查是否做了动态权限申请

3.进入设置中查看权限是否真实允许

检查完毕后发现不是这些问题,然后根据一位网友的提示,发现出现这个错误的可能性在于,文件夹是否已存在,能不能在没有这个文件夹的情况下,给完整路径直接创建文件(文件夹顺带创建)。结果是否定的,在文件夹不存在的情况下,直接创建文件会出现No such file or directory问题。

记录问题,以作以后参考。

 

附代码:

先创建文件夹

public static String getAppDir() {
    String local_file = Environment.getExternalStorageDirectory().getAbsolutePath() + FILE_PATH;
    //这里必须要先创建文件夹,若不创建文件夹,会导致file.createNewFile()出现No such file or directory
    File f = new File(local_file);
    if(!f.exists()){
        f.mkdirs();
    }
    return local_file;
}

 

在根据文件夹创建文件

/**
     * 下载文件
     *
     * @param fileUrl     文件url
     * @param destFileDir 文件名:test.docx
     */
    public  void downLoadFile(String fileUrl, final String destFileDir, final ReqProgressCallBack callBack) {
        final File file = new File(FileUtils.getAppDir(), destFileDir);

        if (file.exists() && file.length() > 0) {
            successCallBack((T) file, callBack);
            return;
        }

        if (!file.exists()) {
            try {
                file.createNewFile();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

        ......

    }

 

你可能感兴趣的:(问题解决方案,java,android)